aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2008-06-23 06:36:23 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2008-07-14 17:43:28 -0400
commit04a33e406a062cd1bb55014ee17a3558109a2d74 (patch)
tree2fd681c3ddeb109bcf0720450ac4a32f1553ad0e
parent547d8bb7ddf7f5d9f53741086a394c8318e15f16 (diff)
cpia2: use request_firmware()
Thanks for Jaswinder Singh for converting the firmware blob itself to ihex. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r--drivers/media/video/cpia2/cpia2_core.c46
-rw-r--r--drivers/media/video/cpia2/cpia2patch.h233
-rw-r--r--firmware/Makefile1
-rw-r--r--firmware/WHENCE13
-rw-r--r--firmware/cpia2/stv0672_vp4.bin.ihex73
5 files changed, 124 insertions, 242 deletions
diff --git a/drivers/media/video/cpia2/cpia2_core.c b/drivers/media/video/cpia2/cpia2_core.c
index c8b9fdb700ff..f2e8b1c82c66 100644
--- a/drivers/media/video/cpia2/cpia2_core.c
+++ b/drivers/media/video/cpia2/cpia2_core.c
@@ -33,11 +33,10 @@
33 33
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/vmalloc.h> 35#include <linux/vmalloc.h>
36#include <linux/firmware.h>
36 37
37/* #define _CPIA2_DEBUG_ */ 38/* #define _CPIA2_DEBUG_ */
38 39
39#include "cpia2patch.h"
40
41#ifdef _CPIA2_DEBUG_ 40#ifdef _CPIA2_DEBUG_
42 41
43static const char *block_name[] = { 42static const char *block_name[] = {
@@ -893,24 +892,53 @@ int cpia2_set_low_power(struct camera_data *cam)
893 * apply_vp_patch 892 * apply_vp_patch
894 * 893 *
895 *****************************************************************************/ 894 *****************************************************************************/
895static int cpia2_send_onebyte_command(struct camera_data *cam,
896 struct cpia2_command *cmd,
897 u8 start, u8 datum)
898{
899 cmd->buffer.block_data[0] = datum;
900 cmd->start = start;
901 cmd->reg_count = 1;
902 return cpia2_send_command(cam, cmd);
903}
904
896static int apply_vp_patch(struct camera_data *cam) 905static int apply_vp_patch(struct camera_data *cam)
897{ 906{
898 int i, j; 907 const struct firmware *fw;
908 const char fw_name[] = "cpia2/stv0672_vp4.bin";
909 int i, ret;
899 struct cpia2_command cmd; 910 struct cpia2_command cmd;
900 911
912 ret = request_firmware(&fw, fw_name, &cam->dev->dev);
913 if (ret) {
914 printk(KERN_ERR "cpia2: failed to load VP patch \"%s\"\n",
915 fw_name);
916 return ret;
917 }
918
901 cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP; 919 cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP;
902 cmd.direction = TRANSFER_WRITE; 920 cmd.direction = TRANSFER_WRITE;
903 921
904 for (i = 0; i < PATCH_DATA_SIZE; i++) { 922 /* First send the start address... */
905 for (j = 0; j < patch_data[i].count; j++) { 923 cpia2_send_onebyte_command(cam, &cmd, 0x0A, fw->data[0]); /* hi */
906 cmd.buffer.block_data[j] = patch_data[i].data[j]; 924 cpia2_send_onebyte_command(cam, &cmd, 0x0B, fw->data[1]); /* lo */
907 }
908 925
909 cmd.start = patch_data[i].reg; 926 /* ... followed by the data payload */
910 cmd.reg_count = patch_data[i].count; 927 for (i = 2; i < fw->size; i += 64) {
928 cmd.start = 0x0C; /* Data */
929 cmd.reg_count = min_t(int, 64, fw->size - i);
930 memcpy(cmd.buffer.block_data, &fw->data[i], cmd.reg_count);
911 cpia2_send_command(cam, &cmd); 931 cpia2_send_command(cam, &cmd);
912 } 932 }
913 933
934 /* Next send the start address... */
935 cpia2_send_onebyte_command(cam, &cmd, 0x0A, fw->data[0]); /* hi */
936 cpia2_send_onebyte_command(cam, &cmd, 0x0B, fw->data[1]); /* lo */
937
938 /* ... followed by the 'goto' command */
939 cpia2_send_onebyte_command(cam, &cmd, 0x0D, 1);
940
941 release_firmware(fw);
914 return 0; 942 return 0;
915} 943}
916 944
diff --git a/drivers/media/video/cpia2/cpia2patch.h b/drivers/media/video/cpia2/cpia2patch.h
deleted file mode 100644
index 7f085fbe76fb..000000000000
--- a/drivers/media/video/cpia2/cpia2patch.h
+++ /dev/null
@@ -1,233 +0,0 @@
1/****************************************************************************
2 *
3 * Filename: cpia2patch.h
4 *
5 * Copyright 2001, STMicrolectronics, Inc.
6 *
7 * Contact: steve.miller@st.com
8 *
9 * Description:
10 * This file contains patch data for the CPiA2 (stv0672) VP4.
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 *
26 ****************************************************************************/
27
28#ifndef CPIA2_PATCH_HEADER
29#define CPIA2_PATCH_HEADER
30
31typedef struct {
32 unsigned char reg;
33 unsigned char count;
34 const unsigned char *data;
35} cpia2_patch;
36
37static const unsigned char start_address_hi[1] = {
38 0x01
39};
40
41static const unsigned char start_address_lo[1] = {
42 0xBC
43};
44
45static const unsigned char patch_block0[64] = {
46 0xE3, 0x02, 0xE3, 0x03, 0xE3, 0x04, 0xE3, 0x05,
47 0xE3, 0x06, 0xE3, 0x07, 0x93, 0x44, 0x56, 0xD4,
48 0x93, 0x4E, 0x56, 0x51, 0x93, 0x4E, 0x51, 0xD6,
49 0x93, 0x4E, 0x4F, 0x54, 0x93, 0x4E, 0x92, 0x4F,
50 0x92, 0xA4, 0x93, 0x05, 0x92, 0xF4, 0x93, 0x1B,
51 0x92, 0x92, 0x91, 0xE6, 0x92, 0x36, 0x92, 0x74,
52 0x92, 0x4A, 0x92, 0x8C, 0x92, 0x8E, 0xC8, 0xD0,
53 0x0B, 0x42, 0x02, 0xA0, 0xCA, 0x92, 0x09, 0x02
54};
55
56static const unsigned char patch_block1[64] = {
57 0xC9, 0x10, 0x0A, 0x0A, 0x0A, 0x81, 0xE3, 0xB8,
58 0xE3, 0xB0, 0xE3, 0xA8, 0xE3, 0xA0, 0xE3, 0x98,
59 0xE3, 0x90, 0xE1, 0x00, 0xCF, 0xD7, 0x0A, 0x12,
60 0xCC, 0x95, 0x08, 0xB2, 0x0A, 0x18, 0xE1, 0x00,
61 0x01, 0xEE, 0x0C, 0x08, 0x4A, 0x12, 0xC8, 0x18,
62 0xF0, 0x9A, 0xC0, 0x22, 0xF3, 0x1C, 0x4A, 0x13,
63 0xF3, 0x14, 0xC8, 0xA0, 0xF2, 0x14, 0xF2, 0x1C,
64 0xEB, 0x13, 0xD3, 0xA2, 0x63, 0x16, 0x48, 0x9E
65};
66
67static const unsigned char patch_block2[64] = {
68 0xF0, 0x18, 0xA4, 0x03, 0xF3, 0x93, 0xC0, 0x58,
69 0xF7, 0x13, 0x51, 0x9C, 0xE9, 0x20, 0xCF, 0xEF,
70 0x63, 0xF9, 0x92, 0x2E, 0xD3, 0x5F, 0x63, 0xFA,
71 0x92, 0x2E, 0xD3, 0x67, 0x63, 0xFB, 0x92, 0x2E,
72 0xD3, 0x6F, 0xE9, 0x1A, 0x63, 0x16, 0x48, 0xA7,
73 0xF0, 0x20, 0xA4, 0x06, 0xF3, 0x94, 0xC0, 0x27,
74 0xF7, 0x14, 0xF5, 0x13, 0x51, 0x9D, 0xF6, 0x13,
75 0x63, 0x18, 0xC4, 0x20, 0xCB, 0xEF, 0x63, 0xFC
76};
77
78static const unsigned char patch_block3[64] = {
79 0x92, 0x2E, 0xD3, 0x77, 0x63, 0xFD, 0x92, 0x2E,
80 0xD3, 0x7F, 0x63, 0xFE, 0x92, 0x2E, 0xD3, 0x87,
81 0x63, 0xFF, 0x92, 0x2E, 0xD3, 0x8F, 0x64, 0x38,
82 0x92, 0x2E, 0xD3, 0x97, 0x64, 0x39, 0x92, 0x2E,
83 0xD3, 0x9F, 0xE1, 0x00, 0xF5, 0x3A, 0xF4, 0x3B,
84 0xF7, 0xBF, 0xF2, 0xBC, 0xF2, 0x3D, 0xE1, 0x00,
85 0x80, 0x87, 0x90, 0x80, 0x51, 0xD5, 0x02, 0x22,
86 0x02, 0x32, 0x4B, 0xD3, 0xF7, 0x11, 0x0B, 0xDA
87};
88
89static const unsigned char patch_block4[64] = {
90 0xE1, 0x00, 0x0E, 0x02, 0x02, 0x40, 0x0D, 0xB5,
91 0xE3, 0x02, 0x48, 0x55, 0xE5, 0x12, 0xA4, 0x01,
92 0xE8, 0x1B, 0xE3, 0x90, 0xF0, 0x18, 0xA4, 0x01,
93 0xE8, 0xBF, 0x8D, 0xB8, 0x4B, 0xD1, 0x4B, 0xD8,
94 0x0B, 0xCB, 0x0B, 0xC2, 0xE1, 0x00, 0xE3, 0x02,
95 0xE3, 0x03, 0x52, 0xD3, 0x60, 0x59, 0xE6, 0x93,
96 0x0D, 0x22, 0x52, 0xD4, 0xE6, 0x93, 0x0D, 0x2A,
97 0xE3, 0x98, 0xE3, 0x90, 0xE1, 0x00, 0x02, 0x5D
98};
99
100static const unsigned char patch_block5[64] = {
101 0x02, 0x63, 0xE3, 0x02, 0xC8, 0x12, 0x02, 0xCA,
102 0xC8, 0x52, 0x02, 0xC2, 0x82, 0x68, 0xE3, 0x02,
103 0xC8, 0x14, 0x02, 0xCA, 0xC8, 0x90, 0x02, 0xC2,
104 0x0A, 0xD0, 0xC9, 0x93, 0x0A, 0xDA, 0xCC, 0xD2,
105 0x0A, 0xE2, 0x63, 0x12, 0x02, 0xDA, 0x0A, 0x98,
106 0x0A, 0xA0, 0x0A, 0xA8, 0xE3, 0x90, 0xE1, 0x00,
107 0xE3, 0x02, 0x0A, 0xD0, 0xC9, 0x93, 0x0A, 0xDA,
108 0xCC, 0xD2, 0x0A, 0xE2, 0x63, 0x12, 0x02, 0xDA
109};
110
111static const unsigned char patch_block6[64] = {
112 0x0A, 0x98, 0x0A, 0xA0, 0x0A, 0xA8, 0x49, 0x91,
113 0xE5, 0x6A, 0xA4, 0x04, 0xC8, 0x12, 0x02, 0xCA,
114 0xC8, 0x52, 0x82, 0x89, 0xC8, 0x14, 0x02, 0xCA,
115 0xC8, 0x90, 0x02, 0xC2, 0xE3, 0x90, 0xE1, 0x00,
116 0x08, 0x60, 0xE1, 0x00, 0x48, 0x53, 0xE8, 0x97,
117 0x08, 0x5A, 0xE1, 0x00, 0xE3, 0x02, 0xE3, 0x03,
118 0x54, 0xD3, 0x60, 0x59, 0xE6, 0x93, 0x0D, 0x52,
119 0xE3, 0x98, 0xE3, 0x90, 0xE1, 0x00, 0x02, 0x9C
120};
121
122static const unsigned char patch_block7[64] = {
123 0xE3, 0x02, 0x55, 0x13, 0x93, 0x17, 0x55, 0x13,
124 0x93, 0x17, 0xE3, 0x90, 0xE1, 0x00, 0x75, 0x30,
125 0xE3, 0x02, 0xE3, 0x03, 0x55, 0x55, 0x60, 0x59,
126 0xE6, 0x93, 0x0D, 0xB2, 0xE3, 0x98, 0xE3, 0x90,
127 0xE1, 0x00, 0x02, 0xAE, 0xE7, 0x92, 0xE9, 0x18,
128 0xEA, 0x9A, 0xE8, 0x98, 0xE8, 0x10, 0xE8, 0x11,
129 0xE8, 0x51, 0xD2, 0xDA, 0xD2, 0xF3, 0xE8, 0x13,
130 0xD2, 0xFA, 0xE8, 0x50, 0xD2, 0xEA, 0xE8, 0xD0
131};
132
133static const unsigned char patch_block8[64] = {
134 0xE8, 0xD1, 0xD3, 0x0A, 0x03, 0x09, 0x48, 0x23,
135 0xE5, 0x2C, 0xA0, 0x03, 0x48, 0x24, 0xEA, 0x1C,
136 0x03, 0x08, 0xD2, 0xE3, 0xD3, 0x03, 0xD3, 0x13,
137 0xE1, 0x00, 0x02, 0xCB, 0x05, 0x93, 0x57, 0x93,
138 0xF0, 0x9A, 0xAC, 0x0B, 0xE3, 0x07, 0x92, 0xEA,
139 0xE2, 0x9F, 0xE5, 0x06, 0xE3, 0xB0, 0xA0, 0x02,
140 0xEB, 0x1E, 0x82, 0xD7, 0xEA, 0x1E, 0xE2, 0x3B,
141 0x85, 0x9B, 0xE9, 0x1E, 0xC8, 0x90, 0x85, 0x94
142};
143
144static const unsigned char patch_block9[64] = {
145 0x02, 0xDE, 0x05, 0x80, 0x57, 0x93, 0xF0, 0xBA,
146 0xAC, 0x06, 0x92, 0xEA, 0xE2, 0xBF, 0xE5, 0x06,
147 0xA0, 0x01, 0xEB, 0xBF, 0x85, 0x88, 0xE9, 0x3E,
148 0xC8, 0x90, 0x85, 0x81, 0xE9, 0x3E, 0xF0, 0xBA,
149 0xF3, 0x39, 0xF0, 0x3A, 0x60, 0x17, 0xF0, 0x3A,
150 0xC0, 0x90, 0xF0, 0xBA, 0xE1, 0x00, 0x00, 0x3F,
151 0xE3, 0x02, 0xE3, 0x03, 0x58, 0x10, 0x60, 0x59,
152 0xE6, 0x93, 0x0D, 0xA2, 0x58, 0x12, 0xE6, 0x93
153};
154
155static const unsigned char patch_block10[64] = {
156 0x0D, 0xAA, 0xE3, 0x98, 0xE3, 0x90, 0xE1, 0x00,
157 0x03, 0x01, 0xE1, 0x00, 0x03, 0x03, 0x9B, 0x7D,
158 0x8B, 0x8B, 0xE3, 0x02, 0xE3, 0x03, 0x58, 0x56,
159 0x60, 0x59, 0xE6, 0x93, 0x0D, 0xBA, 0xE3, 0x98,
160 0xE3, 0x90, 0xE1, 0x00, 0x03, 0x0F, 0x93, 0x11,
161 0xE1, 0x00, 0xE3, 0x02, 0x4A, 0x11, 0x0B, 0x42,
162 0x91, 0xAF, 0xE3, 0x90, 0xE1, 0x00, 0xF2, 0x91,
163 0xF0, 0x91, 0xA3, 0xFE, 0xE1, 0x00, 0x60, 0x92
164};
165
166static const unsigned char patch_block11[64] = {
167 0xC0, 0x5F, 0xF0, 0x13, 0xF0, 0x13, 0x59, 0x5B,
168 0xE2, 0x13, 0xF0, 0x11, 0x5A, 0x19, 0xE2, 0x13,
169 0xE1, 0x00, 0x00, 0x00, 0x03, 0x27, 0x68, 0x61,
170 0x76, 0x61, 0x6E, 0x61, 0x00, 0x06, 0x03, 0x2C,
171 0xE3, 0x02, 0xE3, 0x03, 0xE9, 0x38, 0x59, 0x15,
172 0x59, 0x5A, 0xF2, 0x9A, 0xBC, 0x0B, 0xA4, 0x0A,
173 0x59, 0x1E, 0xF3, 0x11, 0xF0, 0x1A, 0xE2, 0xBB,
174 0x59, 0x15, 0xF0, 0x11, 0x19, 0x2A, 0xE5, 0x02
175};
176
177static const unsigned char patch_block12[54] = {
178 0xA4, 0x01, 0xEB, 0xBF, 0xE3, 0x98, 0xE3, 0x90,
179 0xE1, 0x00, 0x03, 0x42, 0x19, 0x28, 0xE1, 0x00,
180 0xE9, 0x30, 0x60, 0x79, 0xE1, 0x00, 0xE3, 0x03,
181 0xE3, 0x07, 0x60, 0x79, 0x93, 0x4E, 0xE3, 0xB8,
182 0xE3, 0x98, 0xE1, 0x00, 0xE9, 0x1A, 0xF0, 0x1F,
183 0xE2, 0x33, 0xF0, 0x91, 0xE2, 0x92, 0xE0, 0x32,
184 0xF0, 0x31, 0xE1, 0x00, 0x00, 0x00
185};
186
187static const unsigned char do_call[1] = {
188 0x01
189};
190
191
192#define PATCH_DATA_SIZE 18
193
194static const cpia2_patch patch_data[PATCH_DATA_SIZE] = {
195 {0x0A, sizeof(start_address_hi), start_address_hi}
196 , // 0
197 {0x0B, sizeof(start_address_lo), start_address_lo}
198 , // 1
199 {0x0C, sizeof(patch_block0), patch_block0}
200 , // 2
201 {0x0C, sizeof(patch_block1), patch_block1}
202 , // 3
203 {0x0C, sizeof(patch_block2), patch_block2}
204 , // 4
205 {0x0C, sizeof(patch_block3), patch_block3}
206 , // 5
207 {0x0C, sizeof(patch_block4), patch_block4}
208 , // 6
209 {0x0C, sizeof(patch_block5), patch_block5}
210 , // 7
211 {0x0C, sizeof(patch_block6), patch_block6}
212 , // 8
213 {0x0C, sizeof(patch_block7), patch_block7}
214 , // 9
215 {0x0C, sizeof(patch_block8), patch_block8}
216 , // 10
217 {0x0C, sizeof(patch_block9), patch_block9}
218 , //11
219 {0x0C, sizeof(patch_block10), patch_block10}
220 , // 12
221 {0x0C, sizeof(patch_block11), patch_block11}
222 , // 13
223 {0x0C, sizeof(patch_block12), patch_block12}
224 , // 14
225 {0x0A, sizeof(start_address_hi), start_address_hi}
226 , // 15
227 {0x0B, sizeof(start_address_lo), start_address_lo}
228 , // 16
229 {0x0D, sizeof(do_call), do_call} //17
230};
231
232
233#endif
diff --git a/firmware/Makefile b/firmware/Makefile
index 2f81089dfd2c..8d5465fefd00 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -60,6 +60,7 @@ fw-shipped-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat_loader.fw whiteheat.fw \
60 # whiteheat_loader_debug.fw 60 # whiteheat_loader_debug.fw
61fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw 61fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw
62fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw 62fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw
63fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin
63 64
64fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) 65fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-)
65 66
diff --git a/firmware/WHENCE b/firmware/WHENCE
index 6c7b0b44712d..d8f6199d087a 100644
--- a/firmware/WHENCE
+++ b/firmware/WHENCE
@@ -236,3 +236,16 @@ Licence: Unknown
236Found in hex form in kernel source. 236Found in hex form in kernel source.
237 237
238-------------------------------------------------------------------------- 238--------------------------------------------------------------------------
239
240Driver: CPiA2 -- cameras based on Vision's CPiA2
241
242File: cpia2/stv0672_vp4.bin
243
244Licence: Allegedly GPLv2+, but no source visible. Marked:
245 Copyright (C) 2001 STMicroelectronics, Inc.
246 Contact: steve.miller@st.com
247 Description: This file contains patch data for the CPiA2 (stv0672) VP4.
248
249Found in hex form in kernel source.
250
251--------------------------------------------------------------------------
diff --git a/firmware/cpia2/stv0672_vp4.bin.ihex b/firmware/cpia2/stv0672_vp4.bin.ihex
new file mode 100644
index 000000000000..bd0b9cf65640
--- /dev/null
+++ b/firmware/cpia2/stv0672_vp4.bin.ihex
@@ -0,0 +1,73 @@
1:1000000001BCE302E303E304E305E306E3079344EF
2:1000100056D4934E5651934E51D6934E4F54934EC1
3:10002000924F92A4930592F4931B929291E692368A
4:100030009274924A928C928EC8D00B4202A0CA92BD
5:100040000902C9100A0A0A81E3B8E3B0E3A8E3A0F1
6:10005000E398E390E100CFD70A12CC9508B20A18D2
7:10006000E10001EE0C084A12C818F09AC022F31CF5
8:100070004A13F314C8A0F214F21CEB13D3A26316B4
9:10008000489EF018A403F393C058F713519CE9203D
10:10009000CFEF63F9922ED35F63FA922ED36763FB9F
11:1000A000922ED36FE91A631648A7F020A406F394A2
12:1000B000C027F714F513519DF6136318C420CBEF36
13:1000C00063FC922ED37763FD922ED37F63FE922E34
14:1000D000D38763FF922ED38F6438922ED3976439DF
15:1000E000922ED39FE100F53AF43BF7BFF2BCF23D0C
16:1000F000E1008087908051D5022202324BD3F71164
17:100100000BDAE1000E0202400DB5E3024855E5129C
18:10011000A401E81BE390F018A401E8BF8DB84BD10F
19:100120004BD80BCB0BC2E100E302E30352D360597F
20:10013000E6930D2252D4E6930D2AE398E390E10072
21:10014000025D0263E302C81202CAC85202C2826898
22:10015000E302C81402CAC89002C20AD0C9930ADADC
23:10016000CCD20AE2631202DA0A980AA00AA8E39043
24:10017000E100E3020AD0C9930ADACCD20AE26312A0
25:1001800002DA0A980AA00AA84991E56AA404C812EA
26:1001900002CAC8528289C81402CAC89002C2E39037
27:1001A000E1000860E1004853E897085AE100E302E3
28:1001B000E30354D36059E6930D52E398E390E100D2
29:1001C000029CE3025513931755139317E390E10034
30:1001D0007530E302E30355556059E6930DB2E39899
31:1001E000E390E10002AEE792E918EA9AE898E81095
32:1001F000E811E851D2DAD2F3E813D2FAE850D2EAA1
33:10020000E8D0E8D1D30A03094823E52CA003482409
34:10021000EA1C0308D2E3D303D313E10002CB059316
35:100220005793F09AAC0BE30792EAE29FE506E3B03E
36:10023000A002EB1E82D7EA1EE23B859BE91EC89016
37:10024000859402DE05805793F0BAAC0692EAE2BFCD
38:10025000E506A001EBBF8588E93EC8908581E93EAF
39:10026000F0BAF339F03A6017F03AC090F0BAE10012
40:10027000003FE302E30358106059E6930DA25812C1
41:10028000E6930DAAE398E390E1000301E100030384
42:100290009B7D8B8BE302E30358566059E6930DBABE
43:1002A000E398E390E100030F9311E100E3024A11A8
44:1002B0000B4291AFE390E100F291F091A3FEE100D7
45:1002C0006092C05FF013F013595BE213F0115A19FA
46:1002D000E213E10000000327686176616E610006A9
47:1002E000032CE302E303E9385915595AF29ABC0B7F
48:1002F000A40A591EF311F01AE2BB5915F011192A7C
49:10030000E502A401EBBFE398E390E1000342192862
50:10031000E100E9306079E100E303E3076079934E9F
51:10032000E3B8E398E100E91AF01FE233F091E292BA
52:08033000E032F031E1000000B1
53:00000001FF
54
55 Copyright 2001, STMicrolectronics, Inc.
56 Contact: steve.miller@st.com
57
58 Description:
59 This file contains patch data for the CPiA2 (stv0672) VP4.
60
61 This program is free software; you can redistribute it and/or modify
62 it under the terms of the GNU General Public License as published by
63 the Free Software Foundation; either version 2 of the License, or
64 (at your option) any later version.
65
66 This program is distributed in the hope that it will be useful,
67 but WITHOUT ANY WARRANTY; without even the implied warranty of
68 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
69 GNU General Public License for more details.
70
71 You should have received a copy of the GNU General Public License
72 along with this program; if not, write to the Free Software
73 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.