aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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[] = {
788 { } 788 { }
789}; 789};
790 790
791static const struct af9015_setup af9015_setup_hashes[] = {
792 { 0xb8feb708,
793 af9015_rc_keys_msi, ARRAY_SIZE(af9015_rc_keys_msi),
794 af9015_ir_table_msi, ARRAY_SIZE(af9015_ir_table_msi) },
795 { }
796};
797
791static void af9015_set_remote_config(struct usb_device *udev, 798static void af9015_set_remote_config(struct usb_device *udev,
792 struct dvb_usb_device_properties *props) 799 struct dvb_usb_device_properties *props)
793{ 800{
@@ -800,7 +807,10 @@ static void af9015_set_remote_config(struct usb_device *udev,
800 } else { 807 } else {
801 u16 vendor = le16_to_cpu(udev->descriptor.idVendor); 808 u16 vendor = le16_to_cpu(udev->descriptor.idVendor);
802 809
803 if (vendor == USB_VID_AFATECH) { 810 table = af9015_setup_match(af9015_config.eeprom_sum,
811 af9015_setup_hashes);
812
813 if (!table && vendor == USB_VID_AFATECH) {
804 /* Check USB manufacturer and product strings and try 814 /* Check USB manufacturer and product strings and try
805 to determine correct remote in case of chip vendor 815 to determine correct remote in case of chip vendor
806 reference IDs are used. 816 reference IDs are used.
@@ -831,7 +841,7 @@ static void af9015_set_remote_config(struct usb_device *udev,
831 ARRAY_SIZE(af9015_ir_table_trekstor) 841 ARRAY_SIZE(af9015_ir_table_trekstor)
832 }; 842 };
833 } 843 }
834 } else 844 } else if (!table)
835 table = af9015_setup_match(vendor, af9015_setup_usbids); 845 table = af9015_setup_match(vendor, af9015_setup_usbids);
836 } 846 }
837 847