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

Commit 35b53664 authored by Janne Grunau's avatar Janne Grunau Committed by Mauro Carvalho Chehab
Browse files

[media] hdpvr: add two known to work firmware versions



refine the firmware version test and print the version only once

Signed-off-by: default avatarJanne Grunau <j@jannau.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 74a558b1
Loading
Loading
Loading
Loading
+14 −11
Original line number Diff line number Diff line
@@ -156,19 +156,22 @@ static int device_authorization(struct hdpvr_device *dev)
	v4l2_info(&dev->v4l2_dev, "firmware version 0x%x dated %s\n",
			  dev->usbc_buf[1], &dev->usbc_buf[2]);

	if (dev->usbc_buf[1] == HDPVR_FIRMWARE_VERSION) {
	switch (dev->usbc_buf[1]) {
	case HDPVR_FIRMWARE_VERSION:
		dev->flags &= ~HDPVR_FLAG_AC3_CAP;
	} else if (dev->usbc_buf[1] == HDPVR_FIRMWARE_VERSION_AC3) {
		break;
	case HDPVR_FIRMWARE_VERSION_AC3:
	case HDPVR_FIRMWARE_VERSION_0X12:
	case HDPVR_FIRMWARE_VERSION_0X15:
		dev->flags |= HDPVR_FLAG_AC3_CAP;
	} else if (dev->usbc_buf[1] > HDPVR_FIRMWARE_VERSION_AC3) {
		v4l2_info(&dev->v4l2_dev, "untested firmware version 0x%x, "
			  "the driver might not work\n", dev->usbc_buf[1]);
		break;
	default:
		v4l2_info(&dev->v4l2_dev, "untested firmware, the driver might"
			  " not work.\n");
		if (dev->usbc_buf[1] >= HDPVR_FIRMWARE_VERSION_AC3)
			dev->flags |= HDPVR_FLAG_AC3_CAP;
	} else {
		v4l2_err(&dev->v4l2_dev, "unknown firmware version 0x%x\n",
			dev->usbc_buf[1]);
		ret = -EINVAL;
		goto unlock;
		else
			dev->flags &= ~HDPVR_FLAG_AC3_CAP;
	}

	response = dev->usbc_buf+38;
+4 −2
Original line number Diff line number Diff line
@@ -36,8 +36,10 @@

#define NUM_BUFFERS 64

#define HDPVR_FIRMWARE_VERSION		0x8
#define HDPVR_FIRMWARE_VERSION_AC3	0xd
#define HDPVR_FIRMWARE_VERSION		0x08
#define HDPVR_FIRMWARE_VERSION_AC3	0x0d
#define HDPVR_FIRMWARE_VERSION_0X12	0x12
#define HDPVR_FIRMWARE_VERSION_0X15	0x15

/* #define HDPVR_DEBUG */