summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanne Grunau <j@jannau.net>2010-07-27 11:03:35 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-10-21 07:56:03 -0200
commit35b53664d5d0331c8ec2ef44e74eaf4d18f00c06 (patch)
tree1baad1375c8971f2ab9e817e16bb63ba3bb54bfa
parent74a558b1f441c03b025cd6c11e79a94e99368856 (diff)
downloadlinux-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.c25
-rw-r--r--drivers/media/video/hdpvr/hdpvr.h6
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 */