diff options
author | Janne Grunau <j@jannau.net> | 2010-07-27 11:03:35 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-21 07:56:03 -0200 |
commit | 35b53664d5d0331c8ec2ef44e74eaf4d18f00c06 (patch) | |
tree | 1baad1375c8971f2ab9e817e16bb63ba3bb54bfa | |
parent | 74a558b1f441c03b025cd6c11e79a94e99368856 (diff) | |
download | linux-stable-35b53664d5d0331c8ec2ef44e74eaf4d18f00c06.tar.gz linux-stable-35b53664d5d0331c8ec2ef44e74eaf4d18f00c06.tar.bz2 linux-stable-35b53664d5d0331c8ec2ef44e74eaf4d18f00c06.zip |
[media] hdpvr: add two known to work firmware versions
refine the firmware version test and print the version only once
Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/video/hdpvr/hdpvr-core.c | 25 | ||||
-rw-r--r-- | drivers/media/video/hdpvr/hdpvr.h | 6 |
2 files changed, 18 insertions, 13 deletions
diff --git a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c index baddbcfd276f..d75fe5582f26 100644 --- a/drivers/media/video/hdpvr/hdpvr-core.c +++ b/drivers/media/video/hdpvr/hdpvr-core.c @@ -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]); - 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; + 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 + dev->flags &= ~HDPVR_FLAG_AC3_CAP; } response = dev->usbc_buf+38; diff --git a/drivers/media/video/hdpvr/hdpvr.h b/drivers/media/video/hdpvr/hdpvr.h index b0f046df3cd8..3a4e4e116f54 100644 --- a/drivers/media/video/hdpvr/hdpvr.h +++ b/drivers/media/video/hdpvr/hdpvr.h @@ -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 */ |