Mercurial > mplayer.hg
annotate vidix/drivers/unichrome_vid.c @ 15533:ddf15d233d58
Do not switch to audio tracks whose codec private data differs from the main audio track's as this will most likely result in messed up audio output. Patch by Michael Behrisch <list () behrisch ! de>
author | mosu |
---|---|
date | Sat, 21 May 2005 06:50:08 +0000 |
parents | be030b3627a1 |
children | 401b440a6d76 |
rev | line source |
---|---|
13605
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
1 /* |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
2 Driver for VIA CLE266 Unichrome - Version 0.1.0 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
3 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
4 Copyright (C) 2004 by Timothy Lee |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
5 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
6 Based on Cyberblade/i driver by Alastair M. Robison. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
7 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
8 Thanks to Gilles Frattini for bugfixes |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
9 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
10 This program is free software; you can redistribute it and/or modify |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
11 it under the terms of the GNU General Public License as published by |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
12 the Free Software Foundation; either version 2 of the License, or |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
13 (at your option) any later version. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
14 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
15 This program is distributed in the hope that it will be useful, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
16 but WITHOUT ANY WARRANTY; without even the implied warranty of |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
18 GNU General Public License for more details. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
19 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
20 You should have received a copy of the GNU General Public License |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
21 along with this program; if not, write to the Free Software |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
23 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
24 Changes: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
25 2004-03-10 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
26 Initial version |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
27 2004-10-09 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
28 Added Doxygen documentation (Benjamin Zores <ben@geexbox.org>) |
13901
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
29 2004-11-08 |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
30 Added h/w revision detection (Timothy Lee <timothy.lee@siriushk.com>) |
13605
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
31 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
32 To Do: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
33 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
34 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
35 #include <errno.h> |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
36 #include <stdio.h> |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
37 #include <stdlib.h> |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
38 #include <string.h> |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
39 #include <inttypes.h> |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
40 #include <unistd.h> |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
41 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
42 #include "../vidix.h" |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
43 #include "../fourcc.h" |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
44 #include "../../libdha/libdha.h" |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
45 #include "../../libdha/pci_ids.h" |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
46 #include "../../libdha/pci_names.h" |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
47 #include "../../config.h" |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
48 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
49 #include "unichrome_regs.h" |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
50 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
51 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
52 * @brief Information on PCI device. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
53 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
54 pciinfo_t pci_info; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
55 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
56 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
57 * @brief Unichrome driver colorkey settings. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
58 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
59 static vidix_grkey_t uc_grkey; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
60 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
61 static int frames[VID_PLAY_MAXFRAMES]; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
62 uint8_t *vio; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
63 uint8_t *uc_mem; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
64 uint8_t mclk_save[3]; |
13901
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
65 uint8_t hwrev; |
13605
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
66 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
67 #define VIA_OUT(hwregs, reg, val) *(volatile uint32_t *)((hwregs) + (reg)) = (val) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
68 #define VIA_IN(hwregs, reg) *(volatile uint32_t *)((hwregs) + (reg)) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
69 #define VGA_OUT8(hwregs, reg, val) *(volatile uint8_t *)((hwregs) + (reg) + 0x8000) = (val) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
70 #define VGA_IN8(hwregs, reg) *(volatile uint8_t *)((hwregs) + (reg) + 0x8000) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
71 #define VIDEO_OUT(hwregs, reg, val) VIA_OUT((hwregs)+0x200, reg, val) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
72 #define VIDEO_IN(hwregs, reg) VIA_IN((hwregs)+0x200, reg) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
73 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
74 #define outb(val,reg) OUTPORT8(reg,val) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
75 #define inb(reg) INPORT8(reg) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
76 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
77 #define ALIGN_TO(v, n) (((v) + (n-1)) & ~(n-1)) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
78 #define UC_MAP_V1_FIFO_CONTROL(depth, pre_thr, thr) \ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
79 (((depth)-1) | ((thr) << 8) | ((pre_thr) << 24)) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
80 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
81 #define FRAMEBUFFER_START 0x600000 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
82 #define FRAMEBUFFER_SIZE 0x200000 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
83 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
84 #ifdef DEBUG_LOGFILE |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
85 FILE *logfile = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
86 #define LOGWRITE(x) {if(logfile) fprintf(logfile,x);} |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
87 #else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
88 #define LOGWRITE(x) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
89 #endif |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
90 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
91 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
92 * @brief Unichrome driver vidix capabilities. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
93 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
94 static vidix_capability_t uc_cap = { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
95 "VIA CLE266 Unichrome driver", |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
96 "Timothy Lee <timothy@siriushk.com>", |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
97 TYPE_OUTPUT, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
98 {0, 0, 0, 0}, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
99 4096, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
100 4096, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
101 4, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
102 4, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
103 -1, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
104 FLAG_UPSCALER | FLAG_DOWNSCALER, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
105 VENDOR_VIA2, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
106 -1, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
107 {0, 0, 0, 0} |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
108 }; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
109 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
110 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
111 * @brief list of card IDs compliant with the Unichrome driver . |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
112 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
113 static unsigned short uc_card_ids[] = { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
114 DEVICE_VIA2_VT8623_CLE266_AGP |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
115 }; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
116 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
117 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
118 * @brief Check age of driver. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
119 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
120 * @return vidix version number. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
121 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
122 unsigned int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
123 vixGetVersion (void) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
124 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
125 return (VIDIX_VERSION); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
126 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
127 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
128 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
129 * @brief Find chip index in Unichrome compliant devices list. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
130 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
131 * @param chip_id PCI device ID. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
132 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
133 * @returns index position in uc_card_ids if successful. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
134 * -1 if chip_id is not a compliant chipset ID. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
135 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
136 static int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
137 find_chip (unsigned chip_id) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
138 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
139 unsigned i; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
140 for (i = 0; i < sizeof (uc_card_ids) / sizeof (unsigned short); i++) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
141 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
142 if (chip_id == uc_card_ids[i]) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
143 return i; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
144 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
145 return -1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
146 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
147 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
148 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
149 * @brief Map hardware settings for vertical scaling. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
150 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
151 * @param sh source height. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
152 * @param dh destination height. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
153 * @param zoom will hold vertical setting of zoom register. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
154 * @param mini will hold vertical setting of mini register. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
155 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
156 * @returns 1 if successful. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
157 * 0 if the zooming factor is too large or small. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
158 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
159 * @note Derived from VIA's V4L driver. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
160 * See ddover.c, DDOVER_HQVCalcZoomHeight() |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
161 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
162 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
163 uc_ovl_map_vzoom (int sh, int dh, uint32_t * zoom, uint32_t * mini) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
164 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
165 uint32_t sh1, tmp, d; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
166 int zoom_ok = 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
167 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
168 if (sh == dh) /* No zoom */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
169 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
170 /* Do nothing */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
171 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
172 else if (sh < dh) /* Zoom in */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
173 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
174 tmp = (sh * 0x0400) / dh; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
175 zoom_ok = !(tmp > 0x3ff); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
176 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
177 *zoom |= (tmp & 0x3ff) | V1_Y_ZOOM_ENABLE; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
178 *mini |= V1_Y_INTERPOLY | V1_YCBCR_INTERPOLY; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
179 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
180 else /* sw > dh - Zoom out */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
181 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
182 /* Find a suitable divider (1 << d) = {2, 4, 8 or 16} */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
183 sh1 = sh; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
184 for (d = 1; d < 5; d++) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
185 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
186 sh1 >>= 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
187 if (sh1 <= dh) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
188 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
189 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
190 if (d == 5) /* too small */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
191 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
192 d = 4; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
193 zoom_ok = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
194 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
195 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
196 *mini |= ((d << 1) - 1) << 16; /* <= {1,3,5,7} << 16 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
197 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
198 /* Add scaling */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
199 if (sh1 < dh) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
200 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
201 tmp = (sh1 * 0x400) / dh; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
202 *zoom |= ((tmp & 0x3ff) | V1_Y_ZOOM_ENABLE); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
203 *mini |= V1_Y_INTERPOLY | V1_YCBCR_INTERPOLY; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
204 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
205 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
206 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
207 return zoom_ok; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
208 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
209 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
210 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
211 * @brief Map hardware settings for horizontal scaling. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
212 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
213 * @param sw source width. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
214 * @param dw destination width. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
215 * @param zoom will hold horizontal setting of zoom register. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
216 * @param mini will hold horizontal setting of mini register. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
217 * @param falign will hold fetch aligment. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
218 * @param dcount will hold display count. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
219 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
220 * @returns 1 if successful. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
221 * 0 if the zooming factor is too large or small. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
222 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
223 * @note Derived from VIA's V4L driver. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
224 * See ddover.c, DDOVER_HQVCalcZoomWidth() and DDOver_GetDisplayCount() |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
225 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
226 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
227 uc_ovl_map_hzoom (int sw, int dw, uint32_t * zoom, uint32_t * mini, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
228 int *falign, int *dcount) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
229 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
230 uint32_t tmp, sw1, d; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
231 int md; /* Minify-divider */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
232 int zoom_ok = 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
233 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
234 md = 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
235 *falign = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
236 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
237 if (sw == dw) /* no zoom */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
238 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
239 /* Do nothing */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
240 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
241 else if (sw < dw) /* zoom in */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
242 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
243 tmp = (sw * 0x0800) / dw; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
244 zoom_ok = !(tmp > 0x7ff); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
245 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
246 *zoom |= ((tmp & 0x7ff) << 16) | V1_X_ZOOM_ENABLE; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
247 *mini |= V1_X_INTERPOLY; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
248 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
249 else /* sw > dw - Zoom out */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
250 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
251 /* Find a suitable divider (1 << d) = {2, 4, 8 or 16} */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
252 sw1 = sw; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
253 for (d = 1; d < 5; d++) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
254 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
255 sw1 >>= 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
256 if (sw1 <= dw) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
257 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
258 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
259 if (d == 5) /* too small */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
260 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
261 d = 4; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
262 zoom_ok = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
263 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
264 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
265 md = 1 << d; /* <= {2,4,8,16} */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
266 *falign = ((md << 1) - 1) & 0xf; /* <= {3,7,15,15} */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
267 *mini |= V1_X_INTERPOLY; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
268 *mini |= ((d << 1) - 1) << 24; /* <= {1,3,5,7} << 24 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
269 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
270 /* Add scaling */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
271 if (sw1 < dw) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
272 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
273 /* CLE bug */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
274 /* tmp = sw1*0x0800 / dw; */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
275 tmp = (sw1 - 2) * 0x0800 / dw; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
276 *zoom |= ((tmp & 0x7ff) << 16) | V1_X_ZOOM_ENABLE; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
277 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
278 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
279 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
280 *dcount = sw - md; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
281 return zoom_ok; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
282 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
283 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
284 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
285 * @brief qword fetch register setting. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
286 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
287 * @param format overlay pixel format. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
288 * @param sw source width. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
289 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
290 * @return qword fetch register setting |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
291 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
292 * @note Derived from VIA's V4L driver. See ddover.c, DDOver_GetFetch() |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
293 * @note Only call after uc_ovl_map_hzoom() |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
294 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
295 uint32_t |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
296 uc_ovl_map_qwfetch (uint32_t format, int sw) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
297 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
298 uint32_t fetch = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
299 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
300 switch (format) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
301 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
302 case IMGFMT_YV12: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
303 case IMGFMT_I420: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
304 fetch = ALIGN_TO (sw, 32) >> 4; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
305 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
306 case IMGFMT_UYVY: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
307 case IMGFMT_YVYU: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
308 case IMGFMT_YUY2: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
309 fetch = (ALIGN_TO (sw << 1, 16) >> 4) + 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
310 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
311 case IMGFMT_BGR15: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
312 case IMGFMT_BGR16: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
313 fetch = (ALIGN_TO (sw << 1, 16) >> 4) + 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
314 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
315 case IMGFMT_BGR32: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
316 fetch = (ALIGN_TO (sw << 2, 16) >> 4) + 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
317 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
318 default: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
319 printf ("[unichrome] Unexpected pixelformat!"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
320 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
321 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
322 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
323 if (fetch < 4) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
324 fetch = 4; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
325 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
326 return fetch; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
327 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
328 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
329 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
330 * @brief Map pixel format. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
331 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
332 * @param format pixel format. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
333 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
334 * @return the mapped pixel format. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
335 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
336 * @note Derived from VIA's V4L driver. See ddover.c, DDOver_GetV1Format() |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
337 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
338 uint32_t |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
339 uc_ovl_map_format (uint32_t format) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
340 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
341 switch (format) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
342 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
343 case IMGFMT_UYVY: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
344 case IMGFMT_YVYU: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
345 case IMGFMT_YUY2: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
346 return V1_COLORSPACE_SIGN | V1_YUV422; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
347 case IMGFMT_IYUV: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
348 return V1_COLORSPACE_SIGN | V1_YCbCr420 | V1_SWAP_SW; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
349 case IMGFMT_YV12: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
350 case IMGFMT_I420: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
351 return V1_COLORSPACE_SIGN | V1_YCbCr420; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
352 case IMGFMT_BGR15: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
353 return V1_RGB15; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
354 case IMGFMT_BGR16: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
355 return V1_RGB16; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
356 case IMGFMT_BGR32: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
357 return V1_RGB32; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
358 default: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
359 printf ("[unichrome] Unexpected pixelformat!"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
360 return V1_YUV422; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
361 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
362 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
363 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
364 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
365 * @brief Calculate V1 control and fifo-control register values. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
366 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
367 * @param format pixel format. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
368 * @param sw source width. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
369 * @param hwrev CLE266 hardware revision. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
370 * @param extfifo_on set this 1 if the extended FIFO is enabled. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
371 * @param control will hold value for V1_CONTROL. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
372 * @param fifo will hold value for V1_FIFO_CONTROL. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
373 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
374 void |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
375 uc_ovl_map_v1_control (uint32_t format, int sw, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
376 int hwrev, int extfifo_on, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
377 uint32_t * control, uint32_t * fifo) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
378 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
379 *control = V1_BOB_ENABLE | uc_ovl_map_format (format); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
380 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
381 if (hwrev == 0x10) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
382 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
383 *control |= V1_EXPIRE_NUM_F; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
384 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
385 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
386 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
387 if (extfifo_on) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
388 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
389 *control |= V1_EXPIRE_NUM_A | V1_FIFO_EXTENDED; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
390 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
391 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
392 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
393 *control |= V1_EXPIRE_NUM; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
394 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
395 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
396 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
397 if ((format == IMGFMT_YV12) || (format == IMGFMT_I420)) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
398 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
399 /* Minified video will be skewed without this workaround. */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
400 if (sw <= 80) /* Fetch count <= 5 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
401 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
402 *fifo = UC_MAP_V1_FIFO_CONTROL (16, 0, 0); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
403 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
404 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
405 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
406 if (hwrev == 0x10) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
407 *fifo = UC_MAP_V1_FIFO_CONTROL (64, 56, 56); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
408 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
409 *fifo = UC_MAP_V1_FIFO_CONTROL (16, 12, 8); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
410 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
411 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
412 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
413 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
414 if (hwrev == 0x10) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
415 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
416 *fifo = UC_MAP_V1_FIFO_CONTROL (64, 56, 56); /* Default rev 0x10 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
417 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
418 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
419 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
420 if (extfifo_on) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
421 *fifo = UC_MAP_V1_FIFO_CONTROL (48, 40, 40); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
422 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
423 *fifo = UC_MAP_V1_FIFO_CONTROL (32, 29, 16); /* Default */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
424 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
425 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
426 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
427 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
428 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
429 * @brief Setup extended FIFO. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
430 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
431 * @param extfifo_on pointer determining if extended fifo is enable or not. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
432 * @param dst_w destination width. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
433 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
434 void |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
435 uc_ovl_setup_fifo (int *extfifo_on, int dst_w) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
436 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
437 if (dst_w <= 1024) /* Disable extended FIFO */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
438 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
439 outb (0x16, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
440 outb (mclk_save[0], 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
441 outb (0x17, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
442 outb (mclk_save[1], 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
443 outb (0x18, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
444 outb (mclk_save[2], 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
445 *extfifo_on = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
446 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
447 else /* Enable extended FIFO */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
448 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
449 outb (0x17, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
450 outb (0x2f, 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
451 outb (0x16, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
452 outb ((mclk_save[0] & 0xf0) | 0x14, 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
453 outb (0x18, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
454 outb (0x56, 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
455 *extfifo_on = 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
456 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
457 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
458 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
459 void |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
460 uc_ovl_vcmd_wait (volatile uint8_t * vio) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
461 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
462 while ((VIDEO_IN (vio, V_COMPOSE_MODE) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
463 & (V1_COMMAND_FIRE | V3_COMMAND_FIRE))); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
464 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
465 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
466 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
467 * @brief Probe hardware to find some useable chipset. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
468 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
469 * @param verbose specifies verbose level. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
470 * @param force specifies force mode : driver should ignore |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
471 * device_id (danger but useful for new devices) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
472 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
473 * @returns 0 if it can handle something in PC. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
474 * a negative error code otherwise. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
475 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
476 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
477 vixProbe (int verbose, int force) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
478 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
479 pciinfo_t lst[MAX_PCI_DEVICES]; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
480 unsigned i, num_pci; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
481 int err; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
482 err = pci_scan (lst, &num_pci); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
483 if (err) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
484 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
485 printf ("[unichrome] Error occurred during pci scan: %s\n", |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
486 strerror (err)); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
487 return err; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
488 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
489 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
490 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
491 err = ENXIO; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
492 for (i = 0; i < num_pci; i++) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
493 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
494 if (lst[i].vendor == VENDOR_VIA2) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
495 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
496 int idx; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
497 const char *dname; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
498 idx = find_chip (lst[i].device); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
499 if (idx == -1) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
500 continue; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
501 dname = pci_device_name (VENDOR_VIA2, lst[i].device); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
502 dname = dname ? dname : "Unknown chip"; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
503 printf ("[unichrome] Found chip: %s\n", dname); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
504 if ((lst[i].command & PCI_COMMAND_IO) == 0) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
505 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
506 printf ("[unichrome] Device is disabled, ignoring\n"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
507 continue; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
508 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
509 uc_cap.device_id = lst[i].device; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
510 err = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
511 memcpy (&pci_info, &lst[i], sizeof (pciinfo_t)); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
512 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
513 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
514 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
515 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
516 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
517 if (err && verbose) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
518 printf ("[unichrome] Can't find chip\n"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
519 return err; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
520 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
521 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
522 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
523 * @brief Initializes driver. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
524 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
525 * @returns 0 if ok. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
526 * a negative error code otherwise. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
527 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
528 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
529 vixInit (void) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
530 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
531 long tmp; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
532 uc_mem = map_phys_mem (pci_info.base0, 0x800000); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
533 enable_app_io (); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
534 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
535 outb (0x2f, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
536 tmp = inb (0x3c5) << 0x18; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
537 vio = map_phys_mem (tmp, 0x1000); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
538 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
539 outb (0x16, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
540 mclk_save[0] = inb (0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
541 outb (0x17, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
542 mclk_save[1] = inb (0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
543 outb (0x18, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
544 mclk_save[2] = inb (0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
545 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
546 uc_grkey.ckey.blue = 0x00; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
547 uc_grkey.ckey.green = 0x00; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
548 uc_grkey.ckey.red = 0x00; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
549 |
13901
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
550 /* Detect whether we have a CLE266Ax or CLE266Cx */ |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
551 outb (0x4f, 0x3d4); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
552 tmp = inb (0x3d5); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
553 outb (0x4f, 0x3d4); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
554 outb (0x55, 0x3d5); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
555 outb (0x4f, 0x3d4); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
556 if (0x55 == inb (0x3d5)) |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
557 { |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
558 /* Only CLE266Cx supports CR4F */ |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
559 hwrev = 0x11; |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
560 } |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
561 else |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
562 { |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
563 /* Otherwise assume to be a CLE266Ax */ |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
564 hwrev = 0x00; |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
565 } |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
566 outb (0x4f, 0x3d4); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
567 outb (tmp, 0x3d5); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
568 |
13605
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
569 #ifdef DEBUG_LOGFILE |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
570 logfile = fopen ("/tmp/uc_vidix.log", "w"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
571 #endif |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
572 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
573 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
574 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
575 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
576 * @brief Destroys driver. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
577 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
578 void |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
579 vixDestroy (void) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
580 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
581 #ifdef DEBUG_LOGFILE |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
582 if (logfile) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
583 fclose (logfile); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
584 #endif |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
585 outb (0x16, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
586 outb (mclk_save[0], 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
587 outb (0x17, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
588 outb (mclk_save[1], 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
589 outb (0x18, 0x3c4); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
590 outb (mclk_save[2], 0x3c5); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
591 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
592 disable_app_io (); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
593 unmap_phys_mem (uc_mem, 0x800000); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
594 unmap_phys_mem (vio, 0x1000); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
595 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
596 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
597 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
598 * @brief Get chipset's hardware capabilities. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
599 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
600 * @param to Pointer to the vidix_capability_t structure to be filled. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
601 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
602 * @returns 0. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
603 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
604 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
605 vixGetCapability (vidix_capability_t * to) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
606 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
607 memcpy (to, &uc_cap, sizeof (vidix_capability_t)); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
608 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
609 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
610 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
611 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
612 * @brief Report if the video FourCC is supported by hardware. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
613 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
614 * @param fourcc input image format. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
615 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
616 * @returns 1 if the fourcc is supported. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
617 * 0 otherwise. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
618 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
619 static int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
620 is_supported_fourcc (uint32_t fourcc) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
621 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
622 switch (fourcc) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
623 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
624 case IMGFMT_YV12: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
625 case IMGFMT_I420: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
626 case IMGFMT_UYVY: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
627 case IMGFMT_YVYU: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
628 case IMGFMT_YUY2: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
629 case IMGFMT_BGR15: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
630 case IMGFMT_BGR16: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
631 case IMGFMT_BGR32: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
632 return 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
633 default: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
634 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
635 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
636 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
637 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
638 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
639 * @brief Try to configure video memory for given fourcc. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
640 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
641 * @param to Pointer to the vidix_fourcc_t structure to be filled. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
642 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
643 * @returns 0 if ok. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
644 * errno otherwise. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
645 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
646 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
647 vixQueryFourcc (vidix_fourcc_t * to) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
648 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
649 if (is_supported_fourcc (to->fourcc)) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
650 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
651 to->depth = VID_DEPTH_1BPP | VID_DEPTH_2BPP | |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
652 VID_DEPTH_4BPP | VID_DEPTH_8BPP | |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
653 VID_DEPTH_12BPP | VID_DEPTH_15BPP | |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
654 VID_DEPTH_16BPP | VID_DEPTH_24BPP | VID_DEPTH_32BPP; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
655 to->flags = VID_CAP_EXPAND | VID_CAP_SHRINK | VID_CAP_COLORKEY; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
656 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
657 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
658 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
659 to->depth = to->flags = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
660 return ENOSYS; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
661 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
662 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
663 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
664 * @brief Get the GrKeys |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
665 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
666 * @param grkey Pointer to the vidix_grkey_t structure to be filled by driver. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
667 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
668 * @return 0. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
669 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
670 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
671 vixGetGrKeys (vidix_grkey_t * grkey) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
672 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
673 memcpy (grkey, &uc_grkey, sizeof (vidix_grkey_t)); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
674 return (0); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
675 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
676 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
677 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
678 * @brief Set the GrKeys |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
679 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
680 * @param grkey Colorkey to be set. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
681 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
682 * @return 0. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
683 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
684 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
685 vixSetGrKeys (const vidix_grkey_t * grkey) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
686 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
687 unsigned long dwCompose = VIDEO_IN (vio, V_COMPOSE_MODE) & ~0x0f; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
688 memcpy (&uc_grkey, grkey, sizeof (vidix_grkey_t)); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
689 if (uc_grkey.ckey.op != CKEY_FALSE) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
690 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
691 /* Set colorkey (how do I detect BPP in hardware ??) */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
692 unsigned long ckey; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
693 if (1) /* Assume 16-bit graphics */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
694 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
695 ckey = (grkey->ckey.blue & 0x1f) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
696 | ((grkey->ckey.green & 0x3f) << 5) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
697 | ((grkey->ckey.red & 0x1f) << 11); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
698 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
699 else |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
700 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
701 ckey = (grkey->ckey.blue) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
702 | (grkey->ckey.green << 8) | (grkey->ckey.red << 16); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
703 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
704 VIDEO_OUT (vio, V_COLOR_KEY, ckey); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
705 dwCompose |= SELECT_VIDEO_IF_COLOR_KEY; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
706 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
707 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
708 /* Execute the changes */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
709 VIDEO_OUT (vio, V_COMPOSE_MODE, dwCompose | V1_COMMAND_FIRE); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
710 return (0); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
711 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
712 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
713 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
714 * @brief Unichrome driver equalizer capabilities. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
715 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
716 vidix_video_eq_t equal = { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
717 VEQ_CAP_BRIGHTNESS | VEQ_CAP_SATURATION | VEQ_CAP_HUE, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
718 300, 100, 0, 0, 0, 0, 0, 0 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
719 }; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
720 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
721 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
722 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
723 * @brief Get the equalizer capabilities. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
724 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
725 * @param eq Pointer to the vidix_video_eq_t structure to be filled by driver. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
726 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
727 * @return 0. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
728 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
729 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
730 vixPlaybackGetEq (vidix_video_eq_t * eq) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
731 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
732 memcpy (eq, &equal, sizeof (vidix_video_eq_t)); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
733 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
734 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
735 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
736 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
737 * @brief Set the equalizer capabilities for color correction |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
738 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
739 * @param eq equalizer capabilities to be set. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
740 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
741 * @return 0. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
742 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
743 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
744 vixPlaybackSetEq (const vidix_video_eq_t * eq) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
745 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
746 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
747 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
748 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
749 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
750 * @brief Y, U, V offsets. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
751 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
752 static int YOffs, UOffs, VOffs; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
753 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
754 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
755 * @brief Configure driver for playback. Driver should prepare BES. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
756 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
757 * @param info configuration description for playback. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
758 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
759 * @returns 0 in case of success. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
760 * -1 otherwise. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
761 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
762 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
763 vixConfigPlayback (vidix_playback_t * info) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
764 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
765 int src_w, drw_w; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
766 int src_h, drw_h; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
767 long base0, pitch; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
768 int uv_size, swap_uv; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
769 unsigned int i; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
770 int extfifo_on; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
771 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
772 /* Overlay register settings */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
773 uint32_t win_start, win_end; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
774 uint32_t zoom, mini; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
775 uint32_t dcount, falign, qwfetch; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
776 uint32_t y_start, u_start, v_start; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
777 uint32_t v_ctrl, fifo_ctrl; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
778 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
779 if (!is_supported_fourcc (info->fourcc)) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
780 return -1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
781 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
782 src_w = info->src.w; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
783 src_h = info->src.h; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
784 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
785 drw_w = info->dest.w; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
786 drw_h = info->dest.h; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
787 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
788 /* Setup FIFO */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
789 uc_ovl_setup_fifo (&extfifo_on, src_w); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
790 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
791 /* Get image format, FIFO size, etc. */ |
13901
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
792 uc_ovl_map_v1_control (info->fourcc, src_w, hwrev, extfifo_on, |
13605
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
793 &v_ctrl, &fifo_ctrl); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
794 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
795 /* Setup layer window */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
796 win_start = (info->dest.x << 16) | info->dest.y; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
797 win_end = ((info->dest.x + drw_w - 1) << 16) | (info->dest.y + drw_h - 1); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
798 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
799 /* Get scaling and data-fetch parameters */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
800 zoom = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
801 mini = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
802 uc_ovl_map_vzoom (src_h, drw_h, &zoom, &mini); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
803 uc_ovl_map_hzoom (src_w, drw_w, &zoom, &mini, &falign, &dcount); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
804 qwfetch = uc_ovl_map_qwfetch (info->fourcc, src_w); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
805 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
806 /* Calculate buffer sizes */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
807 swap_uv = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
808 switch (info->fourcc) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
809 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
810 case IMGFMT_YV12: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
811 swap_uv = 1; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
812 case IMGFMT_I420: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
813 case IMGFMT_UYVY: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
814 case IMGFMT_YVYU: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
815 pitch = ALIGN_TO (src_w, 32); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
816 uv_size = (pitch >> 1) * (src_h >> 1); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
817 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
818 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
819 case IMGFMT_YUY2: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
820 case IMGFMT_BGR15: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
821 case IMGFMT_BGR16: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
822 pitch = ALIGN_TO (src_w << 1, 32); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
823 uv_size = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
824 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
825 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
826 case IMGFMT_BGR32: |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
827 pitch = ALIGN_TO (src_w << 2, 32); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
828 uv_size = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
829 break; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
830 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
831 if ((src_w > 4096) || (src_h > 4096) || |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
832 (src_w < 32) || (src_h < 1) || (pitch > 0x1fff)) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
833 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
834 printf ("[unichrome] Layer size out of bounds\n"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
835 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
836 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
837 /* Calculate offsets */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
838 info->offset.y = 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
839 info->offset.v = info->offset.y + pitch * src_h; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
840 info->offset.u = info->offset.v + uv_size; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
841 info->frame_size = info->offset.u + uv_size; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
842 YOffs = info->offset.y; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
843 UOffs = (swap_uv ? info->offset.v : info->offset.u); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
844 VOffs = (swap_uv ? info->offset.u : info->offset.v); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
845 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
846 /* Assume we have 2 MB to play with */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
847 info->num_frames = FRAMEBUFFER_SIZE / info->frame_size; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
848 if (info->num_frames > VID_PLAY_MAXFRAMES) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
849 info->num_frames = VID_PLAY_MAXFRAMES; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
850 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
851 /* Start at 6 MB. Let's hope it's not in use. */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
852 base0 = FRAMEBUFFER_START; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
853 info->dga_addr = uc_mem + base0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
854 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
855 info->dest.pitch.y = 32; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
856 info->dest.pitch.u = 32; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
857 info->dest.pitch.v = 32; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
858 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
859 for (i = 0; i < info->num_frames; i++) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
860 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
861 info->offsets[i] = info->frame_size * i; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
862 frames[i] = base0 + info->offsets[i]; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
863 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
864 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
865 /* Write to the hardware */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
866 uc_ovl_vcmd_wait (vio); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
867 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
868 /* Configure diy_pitchlay parameters now */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
869 if (v_ctrl & V1_COLORSPACE_SIGN) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
870 { |
13901
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
871 if (hwrev >= 0x10) |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
872 { |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
873 VIDEO_OUT (vio, V1_ColorSpaceReg_2, ColorSpaceValue_2_3123C0); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
874 VIDEO_OUT (vio, V1_ColorSpaceReg_1, ColorSpaceValue_1_3123C0); |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
875 } |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
876 else |
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
877 { |
13605
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
878 VIDEO_OUT (vio, V1_ColorSpaceReg_2, ColorSpaceValue_2); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
879 VIDEO_OUT (vio, V1_ColorSpaceReg_1, ColorSpaceValue_1); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
880 } |
13901
be030b3627a1
h/w revision detection patch by Timothy Lee <timothy.lee@siriushk.com>
faust3
parents:
13605
diff
changeset
|
881 } |
13605
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
882 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
883 VIDEO_OUT (vio, V1_CONTROL, v_ctrl); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
884 VIDEO_OUT (vio, V_FIFO_CONTROL, fifo_ctrl); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
885 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
886 VIDEO_OUT (vio, V1_WIN_START_Y, win_start); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
887 VIDEO_OUT (vio, V1_WIN_END_Y, win_end); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
888 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
889 VIDEO_OUT (vio, V1_SOURCE_HEIGHT, (src_h << 16) | dcount); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
890 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
891 VIDEO_OUT (vio, V12_QWORD_PER_LINE, qwfetch << 20); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
892 VIDEO_OUT (vio, V1_STRIDE, pitch | ((pitch >> 1) << 16)); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
893 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
894 VIDEO_OUT (vio, V1_MINI_CONTROL, mini); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
895 VIDEO_OUT (vio, V1_ZOOM_CONTROL, zoom); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
896 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
897 /* Configure buffer address and execute the changes now! */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
898 vixPlaybackFrameSelect (0); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
899 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
900 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
901 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
902 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
903 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
904 * @brief Set playback on : driver should activate BES on this call. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
905 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
906 * @return 0. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
907 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
908 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
909 vixPlaybackOn (void) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
910 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
911 LOGWRITE ("Enable overlay\n"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
912 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
913 /* Turn on overlay */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
914 VIDEO_OUT (vio, V1_CONTROL, VIDEO_IN (vio, V1_CONTROL) | V1_ENABLE); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
915 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
916 /* Execute the changes */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
917 VIDEO_OUT (vio, V_COMPOSE_MODE, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
918 VIDEO_IN (vio, V_COMPOSE_MODE) | V1_COMMAND_FIRE); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
919 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
920 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
921 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
922 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
923 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
924 * @brief Set playback off : driver should deactivate BES on this call. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
925 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
926 * @return 0. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
927 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
928 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
929 vixPlaybackOff (void) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
930 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
931 LOGWRITE ("Disable overlay\n"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
932 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
933 uc_ovl_vcmd_wait (vio); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
934 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
935 /* Restore FIFO */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
936 VIDEO_OUT (vio, V_FIFO_CONTROL, UC_MAP_V1_FIFO_CONTROL (16, 12, 8)); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
937 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
938 /* Turn off overlay */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
939 VIDEO_OUT (vio, V1_CONTROL, VIDEO_IN (vio, V1_CONTROL) & ~V1_ENABLE); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
940 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
941 /* Execute the changes */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
942 VIDEO_OUT (vio, V_COMPOSE_MODE, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
943 VIDEO_IN (vio, V_COMPOSE_MODE) | V1_COMMAND_FIRE); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
944 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
945 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
946 } |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
947 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
948 /** |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
949 * @brief Driver should prepare and activate corresponded frame. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
950 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
951 * @param frame the frame index. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
952 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
953 * @return 0. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
954 * |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
955 * @note This function is used only for double and triple buffering |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
956 * and never used for single buffering playback. |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
957 */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
958 int |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
959 vixPlaybackFrameSelect (unsigned int frame) |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
960 { |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
961 LOGWRITE ("Frame select\n"); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
962 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
963 uc_ovl_vcmd_wait (vio); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
964 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
965 /* Configure buffer address */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
966 VIDEO_OUT (vio, V1_STARTADDR_Y0, frames[frame] + YOffs); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
967 VIDEO_OUT (vio, V1_STARTADDR_CB0, frames[frame] + UOffs); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
968 VIDEO_OUT (vio, V1_STARTADDR_CR0, frames[frame] + VOffs); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
969 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
970 /* Execute the changes */ |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
971 VIDEO_OUT (vio, V_COMPOSE_MODE, |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
972 VIDEO_IN (vio, V_COMPOSE_MODE) | V1_COMMAND_FIRE); |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
973 |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
974 return 0; |
c971585ddcab
CLE266 Vidix driver initial patch by Timothy Lee <timothy@siriushk.com>, doxygen comments by Benjamin Zores <ben@tutuxclan.org>
faust3
parents:
diff
changeset
|
975 } |