[4/4] media: dvb/af9015, add hashes support

Message ID 1264173055-14787-4-git-send-email-jslaby@suse.cz (mailing list archive)
State Superseded, archived
Headers

Commit Message

Jiri Slaby Jan. 22, 2010, 3:10 p.m. UTC
  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>
Cc: Antti Palosaari <crope@iki.fi>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: linux-media@vger.kernel.org

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 drivers/media/dvb/dvb-usb/af9015.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)
  

Comments

Antti Palosaari Jan. 24, 2010, 11:55 p.m. UTC | #1
On 01/22/2010 05:10 PM, Jiri Slaby wrote:
> 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>
> Cc: Antti Palosaari<crope@iki.fi>
> Cc: Mauro Carvalho Chehab<mchehab@redhat.com>
> Cc: linux-media@vger.kernel.org
>
> Signed-off-by: Jiri Slaby<jslaby@suse.cz>
> ---
>   drivers/media/dvb/dvb-usb/af9015.c |   14 ++++++++++++--
>   1 files changed, 12 insertions(+), 2 deletions(-)

Acked-by: Antti Palosaari <crope@iki.fi>
  

Patch

diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index 796f9d5..650c913 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);
 	}