Skip to content

Commit

Permalink
Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Browse files Browse the repository at this point in the history
* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
  V4L/DVB (5260): Cx88-blackbird: allow usage of both 376836 and 262144 sized firmware images
  V4L/DVB (5366): Pvrusb2: Fix compilation warning for amd64 builds (use %zu instead of %u)
  • Loading branch information
Linus Torvalds committed Mar 4, 2007
2 parents 6d04e3b + af70dbd commit 85a5d77
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 6 deletions.
14 changes: 9 additions & 5 deletions drivers/media/video/cx88/cx88-blackbird.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ MODULE_PARM_DESC(debug,"enable debug messages [blackbird]");

/* ------------------------------------------------------------------ */

#define BLACKBIRD_FIRM_IMAGE_SIZE 256*1024
#define OLD_BLACKBIRD_FIRM_IMAGE_SIZE 262144
#define BLACKBIRD_FIRM_IMAGE_SIZE 376836

/* defines below are from ivtv-driver.h */

Expand Down Expand Up @@ -404,7 +405,7 @@ static int blackbird_find_mailbox(struct cx8802_dev *dev)
u32 value;
int i;

for (i = 0; i < BLACKBIRD_FIRM_IMAGE_SIZE; i++) {
for (i = 0; i < dev->fw_size; i++) {
memory_read(dev->core, i, &value);
if (value == signature[signaturecnt])
signaturecnt++;
Expand Down Expand Up @@ -452,12 +453,15 @@ static int blackbird_load_firmware(struct cx8802_dev *dev)
return -1;
}

if (firmware->size != BLACKBIRD_FIRM_IMAGE_SIZE) {
dprintk(0, "ERROR: Firmware size mismatch (have %zd, expected %d)\n",
firmware->size, BLACKBIRD_FIRM_IMAGE_SIZE);
if ((firmware->size != BLACKBIRD_FIRM_IMAGE_SIZE) &&
(firmware->size != OLD_BLACKBIRD_FIRM_IMAGE_SIZE)) {
dprintk(0, "ERROR: Firmware size mismatch (have %zd, expected %d or %d)\n",
firmware->size, BLACKBIRD_FIRM_IMAGE_SIZE,
OLD_BLACKBIRD_FIRM_IMAGE_SIZE);
release_firmware(firmware);
return -1;
}
dev->fw_size = firmware->size;

if (0 != memcmp(firmware->data, magic, 8)) {
dprintk(0, "ERROR: Firmware magic mismatch, wrong file?\n");
Expand Down
1 change: 1 addition & 0 deletions drivers/media/video/cx88/cx88.h
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,7 @@ struct cx8802_dev {
u32 mailbox;
int width;
int height;
int fw_size;

#if defined(CONFIG_VIDEO_BUF_DVB) || defined(CONFIG_VIDEO_BUF_DVB_MODULE)
/* for dvb only */
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/pvrusb2/pvrusb2-hdw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1268,7 +1268,7 @@ int pvr2_upload_firmware2(struct pvr2_hdw *hdw)
if (fw_len % sizeof(u32)) {
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"size of %s firmware"
" must be a multiple of %u bytes",
" must be a multiple of %zu bytes",
fw_files[fwidx],sizeof(u32));
release_firmware(fw_entry);
return -1;
Expand Down

0 comments on commit 85a5d77

Please sign in to comment.