From 35b53664d5d0331c8ec2ef44e74eaf4d18f00c06 Mon Sep 17 00:00:00 2001 From: Janne Grunau Date: Tue, 27 Jul 2010 11:03:35 -0300 Subject: [PATCH] [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 Signed-off-by: Mauro Carvalho Chehab --- drivers/media/video/hdpvr/hdpvr-core.c | 25 ++++++++++++++----------- 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 */ -- GitLab