summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/af9015.c
diff options
context:
space:
mode:
authorJiri Slaby2010-01-22 16:10:55 +0100
committerMauro Carvalho Chehab2010-02-26 19:10:52 +0100
commite3a0cc62c80a997512295d8f714ee09fafbb4c99 (patch)
treeca285108e192e02cb54266b7d23213267b216bf6 /drivers/media/dvb/dvb-usb/af9015.c
parentV4L/DVB: media: dvb/af9015, refactor remote setting (diff)
downloadkernel-qcow2-linux-e3a0cc62c80a997512295d8f714ee09fafbb4c99.tar.gz
kernel-qcow2-linux-e3a0cc62c80a997512295d8f714ee09fafbb4c99.tar.xz
kernel-qcow2-linux-e3a0cc62c80a997512295d8f714ee09fafbb4c99.zip
V4L/DVB: media: dvb/af9015, add hashes support
So as a final patch, add support for hash and one hash entry for MSI digi vox mini II: iManufacturer 1 Afatech iProduct 2 DVB-T 2 iSerial 3 010101010600001 It is now handled with proper IR and key map tables. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Acked-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/af9015.c')
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index 03ba2fdee834..47ab2e92c6af 100644
--- a/drivers/media/dvb/dvb-usb/af9015.c
+++ b/drivers/media/dvb/dvb-usb/af9015.c
@@ -788,6 +788,13 @@ static const struct af9015_setup af9015_setup_usbids[] = {
{ }
};
+static const struct af9015_setup af9015_setup_hashes[] = {
+ { 0xb8feb708,
+ af9015_rc_keys_msi, ARRAY_SIZE(af9015_rc_keys_msi),
+ af9015_ir_table_msi, ARRAY_SIZE(af9015_ir_table_msi) },
+ { }
+};
+
static void af9015_set_remote_config(struct usb_device *udev,
struct dvb_usb_device_properties *props)
{
@@ -800,7 +807,10 @@ static void af9015_set_remote_config(struct usb_device *udev,
} else {
u16 vendor = le16_to_cpu(udev->descriptor.idVendor);
- if (vendor == USB_VID_AFATECH) {
+ table = af9015_setup_match(af9015_config.eeprom_sum,
+ af9015_setup_hashes);
+
+ if (!table && vendor == USB_VID_AFATECH) {
/* Check USB manufacturer and product strings and try
to determine correct remote in case of chip vendor
reference IDs are used.
@@ -831,7 +841,7 @@ static void af9015_set_remote_config(struct usb_device *udev,
ARRAY_SIZE(af9015_ir_table_trekstor)
};
}
- } else
+ } else if (!table)
table = af9015_setup_match(vendor, af9015_setup_usbids);
}