Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85a5d77a authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb

* 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)
parents 6d04e3b0 af70dbd3
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -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 */

@@ -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++;
@@ -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");
+1 −0
Original line number Diff line number Diff line
@@ -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 */
+1 −1
Original line number Diff line number Diff line
@@ -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;