summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--v4l2-apps/util/xc3028-firmware/firmware-tool.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/v4l2-apps/util/xc3028-firmware/firmware-tool.c b/v4l2-apps/util/xc3028-firmware/firmware-tool.c
index 89b792307..da063ca77 100644
--- a/v4l2-apps/util/xc3028-firmware/firmware-tool.c
+++ b/v4l2-apps/util/xc3028-firmware/firmware-tool.c
@@ -667,8 +667,8 @@ int seek_chunks(struct chunk_hunk *fhunk,
for (p = base_start; p < endp; p++) {
fpos = p;
- for (p2 = fdata + ini_sig;
- p2 < fdata + ini_sig + sig_len; p2++,
+ for (p2 = fdata + ini_sig;
+ p2 < fdata + ini_sig + sig_len; p2++,
fpos++) {
if (*fpos != *p2)
break;
@@ -878,7 +878,7 @@ void seek_firmware(struct firmware *f, char *seek_file, char *write_file) {
if (!hunk->size)
continue;
- if (hunk->hint_method)
+ if (hunk->hint_method)
fprintf(fp, "\n\t#\n\t# Guessed format ");
fprintf(fp, "\n\t#\n\t# Firmware %d, ", i);
@@ -892,9 +892,12 @@ void seek_firmware(struct firmware *f, char *seek_file, char *write_file) {
if (f->desc[i].type & HAS_IF)
fprintf(fp, "\twrite_le16(%d);\t\t\t# IF\n",
f->desc[i].int_freq);
- fprintf(fp, "\twrite_le32(%d);\t\t\t# Size\n",
- f->desc[i].size);
-fflush(fp);
+ if (hunk->hint_method == 3)
+ fprintf(fp, "\twrite_le32(%d);\t\t\t# Size\n",
+ hunk->size);
+ else
+ fprintf(fp, "\twrite_le32(%d);\t\t\t# Size\n",
+ f->desc[i].size);
while (hunk) {
if (hunk->data) {
int j;
@@ -921,7 +924,7 @@ fflush(fp);
}
fprintf(fp, end_extract, seek_file, md5, "xc3028-v27.fw",
- f->name, f->version, f->nr_desc);
+ f->name, f->version, nfound);
}
void print_usage(void)