dvb-usb: use designated initializers
Subsystems (2)
Mauro Carvalho Chehab
maintainercover dvb-usb: use designated initializers
There are two DVB USB cores on media. The new one (dvb-usb-v2) solves several problems with the previous one, but, unfortunately, there are several drivers that weren't migrated yet.
One of the problems with dvb-usb is that, besides the common DVB USB table, it also uses a per-device table which require links to the USB ID table.
This is done, on most drivers, using a magic number, which is easy to get outdated.
Rewrite the drivers in order to use an enum and use designated initializers where needed.
This patch series was inspired on this patch:
https://patchwork.kernel.org/project/linux-media/patch/[email protected]/
While it would be nice to also change the tables to be const, this is currently not possible, as a couple drivers that depend on the dvb-usb struct depend on it to not be const.
Writing a patch series like that and making it properly referencing the right entries is not fun. That's most drivers were never fixed. So, I ended using a script to change it, adding several checks on it, in order to avoid the risk of problems.
Even so, I needed to manually adjust some patches.
This is the used script:
<script>
#!/usr/bin/perl
use strict;
use warnings;
use Text::Tabs;
use File::Find;
my $usb_id_pre = "";
my $usb_id_end = "";
my %vid;
my %pid;
my %pid_count;
my $state = "pre";
sub out_ids()
{
open OUT, "> include/media/dvb-usb-ids.h" or die;
print OUT $usb_id_pre;
foreach my $k(sort keys %vid) {
my $ln = sprintf "#define USB_VID_%-31s %s\n", $k, $vid{$k};
$ln = unexpand($ln);
print OUT $ln;
}
print OUT "\n/* Product IDs */\n\n";
foreach my $k(sort keys %pid) {
my $ln = sprintf "#define USB_PID_%-39s %s\n", $k, $pid{$k};
$ln = unexpand($ln);
print OUT $ln;
}
print OUT $usb_id_end;
close OUT;
}my @enum;
sub validate_model($$)
{
my $my_vid = $1;
my $my_pid = $2;
if (!$vid{$my_vid}) {
print "$.# ERROR! VID: $my_vid\n";
return "";
}
if (!$pid{$my_pid}) {
print "$.# ERROR! PID: $my_pid\n";
return "";
}
my $tmp_vid = $my_vid;
$tmp_vid =~ s/_ELECTRONIC$//;
$tmp_vid =~ s/_MICRO$//;
$tmp_vid =~ s/_1$//;
$tmp_vid =~ s/_2$//;
$tmp_vid =~ s/_UNK$//;
$tmp_vid =~ s/GTEK/GENIATECH/;
# Change model name to be different
my $model = $tmp_vid . "_" . $my_pid;
return $my_pid if ($my_pid =~ /$tmp_vid[_]/ && !grep(/^$my_pid$/, @enum));
print "NEW model: $model\n";
# Add the new PID to include/media/dvb-usb-ids.h
$pid{$model} = $pid{$my_pid};
$pid_count{$my_pid}--;
# Drop unused PIDs
if (!$pid_count{$my_pid}) {
delete ($pid{$my_pid});
print "Drop: $my_pid\n";
}
return $model if (!grep(/^$model$/, @enum));
print "$.# ERROR! Model $model aready exists\n";
return "";
}sub count_pid()
{
my $file = $File::Find::name;
return if (!($file =~ /[.][ch]/));
open IN, $file or die "Can't open $file";
while (<IN>) {
if (/USB_PID_([\w\_]+)/) {
$pid_count{$1}++;
next;
}
}
close IN;
}open IN, "include/media/dvb-usb-ids.h" or die;
while (<IN>) {
if (/#define\s+USB_VID_(\S+)\s+(\S+)/) {
$state = "vid";
$vid{$1} = $2;
#print "VID: $1 -> $2\n";
next;
}
if (/#define\s+USB_PID_(\S+)\s+(\S+)/) {
$state = "pid";
$pid{$1} = $2;
#print "PID: $1 -> $2\n";
next;
}
if ($state eq "pre") {
$usb_id_pre .= $_;
} elsif ($state eq "pid") {
$usb_id_end .= $_;
}
}close IN;
find({wanted => \&count_pid, no_chdir => 1}, "drivers/media/usb/");
while (scalar @ARGV) {
@enum = ();
my @dev_id;
my $usb_dev_id_table;
my $out = "";
my $should_write = 1;
my $file = $ARGV[0];
print "Processing $file...\n";
open IN, $file or die "Can't open $1";
my $entry = "";
my $pos = 0;
while (<IN>) {
if (m/struct\s.*usb_device_id\s+([\w\_]+).*{/) {
$usb_dev_id_table = $1;
}
if (!$usb_dev_id_table) {
$out .= $_;
next;
}
if (m,\/\*\s*(\d+)\s*\*\/,) {
if ($1 != $pos) {
printf "$.# ERROR! Count is wrong! Want %d, got %d\n", $pos, $1;
$should_write = 0;
last;
}
}
$pos++ if (m/USB_DEVICE/);
last if (m/^}\s*;/);
$entry .= $_;
next if (!(m/}\s*,/));
if ($entry =~ m/USB_DEVICE\(USB_VID_([\w\_]+)\s*,\s*USB_PID_([\w\_]+)/) {
my $my_vid = $1;
my $my_pid = $2;
my $model = validate_model($my_vid, $my_pid);
if ($model eq "") {
$should_write = 0;
last;
}
push @enum, $model;
push @dev_id, "DVB_USB_DEV($my_vid, $model)";
print "DVB_USB_DEV($my_vid, $model)\n";
}
if ($entry =~ m/USB_DEVICE_VER\(USB_VID_([\w\_]+)\s*,\s*USB_PID_([\w\_]+)\s*,\s*(\w+)\s*,\s*(\w+)/) {
my $my_vid = $1;
my $my_pid = $2;
my $lo = $3;
my $hi = $4;
my $model = validate_model($my_vid, $my_pid);
if ($model eq "") {
$should_write = 0;
last;
}
push @enum, $model;
push @dev_id, "DVB_USB_DEV_VER($my_vid, $model, $lo, $hi)";
print "DVB_USB_DEV_VER($my_vid, $model, $lo, $hi)\n";
}
$entry = "";
}
if ($should_write && scalar(@enum) != $pos) {
printf "ERROR! Count is wrong! Want %d, got %d\n", $pos, scalar(@enum);
$should_write = 0;
}
if ($usb_dev_id_table && $should_write) {
$out .= "enum {\n";
for my $e (@enum) {
$out .= "\t$e,\n";
}
$out .= "};\n\n";
$out .= "static struct usb_device_id $usb_dev_id_table\[\] = {\n";
for my $e (@dev_id) {
$out .= "\t$e,\n";
}
$out .= "\t{ }\n";
$out .= "};\n\n";
my $start = 1;
while (<IN>) {
next if ($start && m/^$/);
$start = 0;
while (m/$usb_dev_id_table\[(\d+)\]/g) {
my $i = $1;
if ($1 > scalar @enum) {
print "ERROR! $usb_dev_id_table element $1 doesn't exist!\n";
$should_write = 0;
last;
}
my $idx = $enum[$1];
if (!(s,($usb_dev_id_table)\[$i\],$1\[$idx],g)) {
print "ERROR! can't replace $1!\n";
$should_write = 0;
last;
}
}
$out .= $_;
}
close IN;
} else {
while (<IN>) {
$out .= $_;
}
print "\tunchanged\n";
$should_write = 0;
}
if ($should_write || $file eq "include/media/dvb-usb-ids.h") {
open OUT, ">$file" or die "Can't write on file $file";
print OUT $out;
close OUT;
printf "\twrote\n";
out_ids();
}
shift @ARGV;
}</script>
Mauro Carvalho Chehab (26):
media: dvb-usb-ids.h: sort entries
media: dvb-usb: move USB IDs to dvb-usb-ids.h
media: dvb-usb: vp702x: reference to usb ID table
media: dvb-usb: Add helper macros for using USB VID/PID
media: dvb-usb: a800: use an enum for the device number
media: af9005: use the newer dvb-usb macros for USB device
media: dvb-usb: az6027: use an enum for the device number
media: cinergyT2-core: use the newer dvb-usb macros for USB device
media: cxusb: use the newer dvb-usb macros for USB device
media: digitv: use the newer dvb-usb macros for USB device
media: dvb-usb: dtt200u: use an enum for the device number
media: dtv5100: use the newer dvb-usb macros for USB device
media: dw2102: use the newer dvb-usb macros for USB device
media: dvb-usb: gp8psk: use an enum for the device number
media: dvb-usb: m920x: use an enum for the device number
media: dvb-usb: nova-t-usb2: use an enum for the device number
media: dvb-usb: opera1: use an enum for the device number
media: dvb-usb: pctv452e: use an enum for the device number
media: technisat-usb2: use the newer dvb-usb macros for USB device
media: dvb-usb: ttusb2: use an enum for the device number
media: dvb-usb: umt-010: use an enum for the device number
media: dvb-usb: vp702x: use an enum for the device number
media: dvb-usb: vp7045: use an enum for the device number
media: dvb-usb: dibusb-mb: use an enum for the device number
media: dvb-usb: dibusb-mc: use an enum for the device number
media: dvb-usb: dib0700_devices: use an enum for the device number
drivers/media/usb/dvb-usb/a800.c | 18 +- drivers/media/usb/dvb-usb/af9005.c | 19 +- drivers/media/usb/dvb-usb/az6027.c | 45 +- drivers/media/usb/dvb-usb/cinergyT2-core.c | 10 +- drivers/media/usb/dvb-usb/cxusb.c | 88 +-- drivers/media/usb/dvb-usb/dib0700_devices.c | 428 +++++++------ drivers/media/usb/dvb-usb/dibusb-mb.c | 165 ++--- drivers/media/usb/dvb-usb/dibusb-mc.c | 88 +-- drivers/media/usb/dvb-usb/digitv.c | 13 +- drivers/media/usb/dvb-usb/dtt200u.c | 56 +- drivers/media/usb/dvb-usb/dtv5100.c | 11 +- drivers/media/usb/dvb-usb/dw2102.c | 84 ++- drivers/media/usb/dvb-usb/gp8psk.c | 36 +- drivers/media/usb/dvb-usb/m920x.c | 51 +- drivers/media/usb/dvb-usb/nova-t-usb2.c | 18 +- drivers/media/usb/dvb-usb/opera1.c | 15 +- drivers/media/usb/dvb-usb/pctv452e.c | 22 +- drivers/media/usb/dvb-usb/technisat-usb2.c | 11 +- drivers/media/usb/dvb-usb/ttusb2.c | 36 +- drivers/media/usb/dvb-usb/umt-010.c | 18 +- drivers/media/usb/dvb-usb/vp702x.c | 23 +- drivers/media/usb/dvb-usb/vp7045.c | 28 +- include/media/dvb-usb-ids.h | 632 +++++++++++--------- 23 files changed, 1071 insertions(+), 844 deletions(-)
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 1/26 media: dvb-usb-ids.h: sort entries
The entries there are alphabetically sorted, but some are at the wrong place. Re-sort them.
While here, replace spaces by tabs where needed.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
include/media/dvb-usb-ids.h | 591 ++++++++++++++++++------------------ 1 file changed, 297 insertions(+), 294 deletions(-)
include/media/dvb-usb-ids.h +297 -294
@@ -11,80 +11,74 @@#define _DVB_USB_IDS_H_/* Vendor IDs */ -#define USB_VID_ADSTECH 0x06e1 -#define USB_VID_AFATECH 0x15a4 + +#define USB_VID_774 0x7a69 +#define USB_VID_ADSTECH 0x06e1 +#define USB_VID_AFATECH 0x15a4#define USB_VID_ALCOR_MICRO 0x058f#define USB_VID_ALINK 0x05e3#define USB_VID_AMT 0x1c73#define USB_VID_ANCHOR 0x0547 -#define USB_VID_ANSONIC 0x10b9 +#define USB_VID_ANSONIC 0x10b9#define USB_VID_ANUBIS_ELECTRONIC 0x10fd#define USB_VID_ASUS 0x0b05#define USB_VID_AVERMEDIA 0x07ca +#define USB_VID_AZUREWAVE 0x13d3#define USB_VID_COMPRO 0x185b#define USB_VID_COMPRO_UNK 0x145f#define USB_VID_CONEXANT 0x0572 -#define USB_VID_CYPRESS 0x04b4 -#define USB_VID_DEXATEK 0x1d19 +#define USB_VID_CYPRESS 0x04b4 +#define USB_VID_DEXATEK 0x1d19#define USB_VID_DIBCOM 0x10b8#define USB_VID_DPOSH 0x1498#define USB_VID_DVICO 0x0fe9#define USB_VID_E3C 0x18b4#define USB_VID_ELGATO 0x0fd9#define USB_VID_EMPIA 0xeb1a +#define USB_VID_EVOLUTEPC 0x1e59#define USB_VID_GENPIX 0x09c0 +#define USB_VID_GIGABYTE 0x1044#define USB_VID_GRANDTEC 0x5032#define USB_VID_GTEK 0x1f4d -#define USB_VID_HANFTEK 0x15f4 +#define USB_VID_HAMA 0x147f +#define USB_VID_HANFTEK 0x15f4#define USB_VID_HAUPPAUGE 0x2040 +#define USB_VID_HUMAX_COEX 0x10b9#define USB_VID_HYPER_PALTEK 0x1025#define USB_VID_INTEL 0x8086 -#define USB_VID_ITETECH 0x048d +#define USB_VID_ITETECH 0x048d#define USB_VID_KWORLD 0xeb2a#define USB_VID_KWORLD_2 0x1b80#define USB_VID_KYE 0x0458 -#define USB_VID_LEADTEK 0x0413 +#define USB_VID_LEADTEK 0x0413#define USB_VID_LITEON 0x04ca#define USB_VID_MEDION 0x1660 +#define USB_VID_MICROSOFT 0x045e#define USB_VID_MIGLIA 0x18f3#define USB_VID_MSI 0x0db0#define USB_VID_MSI_2 0x1462#define USB_VID_OPERA1 0x695c -#define USB_VID_PINNACLE 0x2304#define USB_VID_PCTV 0x2013 +#define USB_VID_PINNACLE 0x2304#define USB_VID_PIXELVIEW 0x1554 -#define USB_VID_REALTEK 0x0bda +#define USB_VID_REALTEK 0x0bda +#define USB_VID_SONY 0x1415 +#define USB_VID_TECHNISAT 0x14f7#define USB_VID_TECHNOTREND 0x0b48 +#define USB_VID_TELESTAR 0x10b9#define USB_VID_TERRATEC 0x0ccd#define USB_VID_TERRATEC_2 0x153b -#define USB_VID_TELESTAR 0x10b9 -#define USB_VID_VISIONPLUS 0x13d3 -#define USB_VID_SONY 0x1415 -#define USB_PID_TEVII_S421 0xd421 -#define USB_PID_TEVII_S480_1 0xd481 -#define USB_PID_TEVII_S480_2 0xd482 -#define USB_PID_TEVII_S630 0xd630 -#define USB_PID_TEVII_S632 0xd632 -#define USB_PID_TEVII_S650 0xd650 -#define USB_PID_TEVII_S660 0xd660 -#define USB_PID_TEVII_S662 0xd662 -#define USB_VID_TWINHAN 0x1822 +#define USB_VID_TWINHAN 0x1822#define USB_VID_ULTIMA_ELECTRONIC 0x05d8 -#define USB_VID_UNIWILL 0x1584 +#define USB_VID_UNIWILL 0x1584 +#define USB_VID_VISIONPLUS 0x13d3#define USB_VID_WIDEVIEW 0x14aa -#define USB_VID_GIGABYTE 0x1044 -#define USB_VID_YUAN 0x1164#define USB_VID_XTENSIONS 0x1ae7 +#define USB_VID_YUAN 0x1164#define USB_VID_ZYDAS 0x0ace -#define USB_VID_HUMAX_COEX 0x10b9 -#define USB_VID_774 0x7a69 -#define USB_VID_EVOLUTEPC 0x1e59 -#define USB_VID_AZUREWAVE 0x13d3 -#define USB_VID_TECHNISAT 0x14f7 -#define USB_VID_HAMA 0x147f -#define USB_VID_MICROSOFT 0x045e/* Product IDs */ +#define USB_PID_ADSTECH_USB2_COLD 0xa333#define USB_PID_ADSTECH_USB2_WARM 0xa334#define USB_PID_AFATECH_AF9005 0x9020
@@ -95,341 +89,350 @@#define USB_PID_AFATECH_AF9035_1002 0x1002#define USB_PID_AFATECH_AF9035_1003 0x1003#define USB_PID_AFATECH_AF9035_9035 0x9035 -#define USB_PID_TREKSTOR_DVBT 0x901b -#define USB_PID_TREKSTOR_TERRES_2_0 0xC803#define USB_PID_ALINK_DTU 0xf170#define USB_PID_ANSONIC_DVBT_USB 0x6000#define USB_PID_ANYSEE 0x861f -#define USB_PID_AZUREWAVE_AD_TU700 0x3237 -#define USB_PID_AZUREWAVE_6007 0x0ccd -#define USB_PID_AVERMEDIA_DVBT_USB_COLD 0x0001 -#define USB_PID_AVERMEDIA_DVBT_USB_WARM 0x0002 +#define USB_PID_ARTEC_T14BR 0x810f +#define USB_PID_ARTEC_T14_COLD 0x810b +#define USB_PID_ARTEC_T14_WARM 0x810c +#define USB_PID_ASUS_U3000 0x171f +#define USB_PID_ASUS_U3000H 0x1736 +#define USB_PID_ASUS_U3100 0x173f +#define USB_PID_ASUS_U3100MINI_PLUS 0x1779 +#define USB_PID_AVERMEDIA_1867 0x1867 +#define USB_PID_AVERMEDIA_A309 0xa309 +#define USB_PID_AVERMEDIA_A310 0xa310 +#define USB_PID_AVERMEDIA_A805 0xa805 +#define USB_PID_AVERMEDIA_A815M 0x815a +#define USB_PID_AVERMEDIA_A835 0xa835 +#define USB_PID_AVERMEDIA_A835B_1835 0x1835 +#define USB_PID_AVERMEDIA_A835B_2835 0x2835 +#define USB_PID_AVERMEDIA_A835B_3835 0x3835 +#define USB_PID_AVERMEDIA_A835B_4835 0x4835 +#define USB_PID_AVERMEDIA_A850 0x850a +#define USB_PID_AVERMEDIA_A850T 0x850b +#define USB_PID_AVERMEDIA_A867 0xa867 +#define USB_PID_AVERMEDIA_B835 0xb835#define USB_PID_AVERMEDIA_DVBT_USB2_COLD 0xa800#define USB_PID_AVERMEDIA_DVBT_USB2_WARM 0xa801 +#define USB_PID_AVERMEDIA_DVBT_USB_COLD 0x0001 +#define USB_PID_AVERMEDIA_DVBT_USB_WARM 0x0002 +#define USB_PID_AVERMEDIA_EXPRESS 0xb568 +#define USB_PID_AVERMEDIA_H335 0x0335 +#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R 0x0039 +#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R_ATSC 0x1039 +#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R_DVBT 0x2039 +#define USB_PID_AVERMEDIA_MCE_USB_M038 0x1228 +#define USB_PID_AVERMEDIA_TD110 0xa110 +#define USB_PID_AVERMEDIA_TD310 0x1871 +#define USB_PID_AVERMEDIA_TWINSTAR 0x0825 +#define USB_PID_AVERMEDIA_VOLAR 0xa807 +#define USB_PID_AVERMEDIA_VOLAR_2 0xb808 +#define USB_PID_AVERMEDIA_VOLAR_A868R 0xa868 +#define USB_PID_AVERMEDIA_VOLAR_X 0xa815 +#define USB_PID_AVERMEDIA_VOLAR_X_2 0x8150 +#define USB_PID_AZUREWAVE_6007 0x0ccd +#define USB_PID_AZUREWAVE_AD_TU700 0x3237 +#define USB_PID_AZUREWAVE_AZ6027 0x3275#define USB_PID_COMPRO_DVBU2000_COLD 0xd000 -#define USB_PID_COMPRO_DVBU2000_WARM 0xd001#define USB_PID_COMPRO_DVBU2000_UNK_COLD 0x010c#define USB_PID_COMPRO_DVBU2000_UNK_WARM 0x010d +#define USB_PID_COMPRO_DVBU2000_WARM 0xd001#define USB_PID_COMPRO_VIDEOMATE_U500 0x1e78#define USB_PID_COMPRO_VIDEOMATE_U500_PC 0x1e80#define USB_PID_CONCEPTRONIC_CTVDIGRCU 0xe397#define USB_PID_CONEXANT_D680_DMB 0x86d6 -#define USB_PID_CREATIX_CTX1921 0x1921 +#define USB_PID_CPYTO_REDI_PC50A 0xa803 +#define USB_PID_CREATIX_CTX1921 0x1921 +#define USB_PID_CTVDIGDUAL_V2 0xe410#define USB_PID_DELOCK_USB2_DVBT 0xb803 +#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131#define USB_PID_DIBCOM_HOOK_DEFAULT 0x0064#define USB_PID_DIBCOM_HOOK_DEFAULT_REENUM 0x0065#define USB_PID_DIBCOM_MOD3000_COLD 0x0bb8#define USB_PID_DIBCOM_MOD3000_WARM 0x0bb9#define USB_PID_DIBCOM_MOD3001_COLD 0x0bc6#define USB_PID_DIBCOM_MOD3001_WARM 0x0bc7 -#define USB_PID_DIBCOM_STK7700P 0x1e14 +#define USB_PID_DIBCOM_NIM7090 0x1bb2 +#define USB_PID_DIBCOM_NIM8096MD 0x1fa8 +#define USB_PID_DIBCOM_NIM9090M 0x2383 +#define USB_PID_DIBCOM_NIM9090MD 0x2384 +#define USB_PID_DIBCOM_STK7070P 0x1ebc +#define USB_PID_DIBCOM_STK7070PD 0x1ebe +#define USB_PID_DIBCOM_STK7700D 0x1ef0 +#define USB_PID_DIBCOM_STK7700P 0x1e14#define USB_PID_DIBCOM_STK7700P_PC 0x1e78 -#define USB_PID_DIBCOM_STK7700D 0x1ef0#define USB_PID_DIBCOM_STK7700_U7000 0x7001 -#define USB_PID_DIBCOM_STK7070P 0x1ebc -#define USB_PID_DIBCOM_STK7070PD 0x1ebe -#define USB_PID_DIBCOM_STK807XP 0x1f90 +#define USB_PID_DIBCOM_STK7770P 0x1e80 +#define USB_PID_DIBCOM_STK807XP 0x1f90#define USB_PID_DIBCOM_STK807XPVR 0x1f98 -#define USB_PID_DIBCOM_STK8096GP 0x1fa0 -#define USB_PID_DIBCOM_STK8096PVR 0x1faa -#define USB_PID_DIBCOM_NIM8096MD 0x1fa8 -#define USB_PID_DIBCOM_TFE8096P 0x1f9C -#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131 -#define USB_PID_DIBCOM_STK7770P 0x1e80 -#define USB_PID_DIBCOM_NIM7090 0x1bb2 +#define USB_PID_DIBCOM_STK8096GP 0x1fa0 +#define USB_PID_DIBCOM_STK8096PVR 0x1faa#define USB_PID_DIBCOM_TFE7090PVR 0x1bb4 -#define USB_PID_DIBCOM_TFE7790P 0x1e6e -#define USB_PID_DIBCOM_NIM9090M 0x2383 -#define USB_PID_DIBCOM_NIM9090MD 0x2384 +#define USB_PID_DIBCOM_TFE7790P 0x1e6e +#define USB_PID_DIBCOM_TFE8096P 0x1f9C +#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD 0xdb54 +#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM 0xdb55 +#define USB_PID_DIGIVOX_MINI_SL_COLD 0xe360 +#define USB_PID_DIGIVOX_MINI_SL_WARM 0xe361 +#define USB_PID_DNTV_TINYUSB2_COLD 0x3223 +#define USB_PID_DNTV_TINYUSB2_WARM 0x3224#define USB_PID_DPOSH_M9206_COLD 0x9206#define USB_PID_DPOSH_M9206_WARM 0xa090 +#define USB_PID_DTT200U_COLD 0x0201 +#define USB_PID_DTT200U_WARM 0x0301 +#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000 +#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM 0x5001 +#define USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD 0xdb50 +#define USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM 0xdb51 +#define USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD 0xdb58 +#define USB_PID_DVICO_BLUEBIRD_DUAL_2_WARM 0xdb59 +#define USB_PID_DVICO_BLUEBIRD_DUAL_4 0xdb78 +#define USB_PID_DVICO_BLUEBIRD_DUAL_4_REV_2 0xdb98 +#define USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2 0xdb70 +#define USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM 0xdb71 +#define USB_PID_DVICO_BLUEBIRD_LG064F_COLD 0xd500 +#define USB_PID_DVICO_BLUEBIRD_LG064F_WARM 0xd501 +#define USB_PID_DVICO_BLUEBIRD_LGDT 0xd820 +#define USB_PID_DVICO_BLUEBIRD_LGZ201_COLD 0xdb00 +#define USB_PID_DVICO_BLUEBIRD_LGZ201_WARM 0xdb01 +#define USB_PID_DVICO_BLUEBIRD_TH7579_COLD 0xdb10 +#define USB_PID_DVICO_BLUEBIRD_TH7579_WARM 0xdb11 +#define USB_PID_DW2102 0x2102 +#define USB_PID_DW2104 0x2104 +#define USB_PID_DW3101 0x3101#define USB_PID_E3C_EC168 0x1689#define USB_PID_E3C_EC168_2 0xfffa#define USB_PID_E3C_EC168_3 0xfffb#define USB_PID_E3C_EC168_4 0x1001#define USB_PID_E3C_EC168_5 0x1002 +#define USB_PID_ELGATO_EYETV_DIVERSITY 0x0011 +#define USB_PID_ELGATO_EYETV_DTT 0x0021 +#define USB_PID_ELGATO_EYETV_DTT_2 0x003f +#define USB_PID_ELGATO_EYETV_DTT_Dlx 0x0020 +#define USB_PID_ELGATO_EYETV_SAT 0x002a +#define USB_PID_ELGATO_EYETV_SAT_V2 0x0025 +#define USB_PID_ELGATO_EYETV_SAT_V3 0x0036 +#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115#define USB_PID_FREECOM_DVBT 0x0160#define USB_PID_FREECOM_DVBT_2 0x0161 -#define USB_PID_UNIWILL_STK7700P 0x6003 +#define USB_PID_FRIIO_WHITE 0x0001#define USB_PID_GENIUS_TVGO_DVB_T03 0x4012 +#define USB_PID_GENPIX_8PSK_REV_1_COLD 0x0200 +#define USB_PID_GENPIX_8PSK_REV_1_WARM 0x0201 +#define USB_PID_GENPIX_8PSK_REV_2 0x0202 +#define USB_PID_GENPIX_SKYWALKER_1 0x0203 +#define USB_PID_GENPIX_SKYWALKER_2 0x0206 +#define USB_PID_GENPIX_SKYWALKER_CW3K 0x0204 +#define USB_PID_GIGABYTE_U7000 0x7001 +#define USB_PID_GIGABYTE_U8000 0x7002 +#define USB_PID_GOTVIEW_SAT_HD 0x5456 +#define USB_PID_GRANDTEC_DVBT_USB2_COLD 0x0bc6 +#define USB_PID_GRANDTEC_DVBT_USB2_WARM 0x0bc7#define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0#define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1 -#define USB_PID_GOTVIEW_SAT_HD 0x5456 +#define USB_PID_HAMA_DVBT_HYBRID 0x2758 +#define USB_PID_HANFTEK_UMT_010_COLD 0x0001 +#define USB_PID_HANFTEK_UMT_010_WARM 0x0015 +#define USB_PID_HAUPPAUGE_MYTV_T 0x7080 +#define USB_PID_HAUPPAUGE_NOVA_TD_STICK 0x9580 +#define USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009 0x5200 +#define USB_PID_HAUPPAUGE_NOVA_T_500 0x9941 +#define USB_PID_HAUPPAUGE_NOVA_T_500_2 0x9950 +#define USB_PID_HAUPPAUGE_NOVA_T_500_3 0x8400 +#define USB_PID_HAUPPAUGE_NOVA_T_STICK 0x7050 +#define USB_PID_HAUPPAUGE_NOVA_T_STICK_2 0x7060 +#define USB_PID_HAUPPAUGE_NOVA_T_STICK_3 0x7070 +#define USB_PID_HAUPPAUGE_TIGER_ATSC 0xb200 +#define USB_PID_HAUPPAUGE_TIGER_ATSC_B210 0xb210#define USB_PID_INTEL_CE9500 0x9500#define USB_PID_ITETECH_IT9135 0x9135#define USB_PID_ITETECH_IT9135_9005 0x9005#define USB_PID_ITETECH_IT9135_9006 0x9006#define USB_PID_ITETECH_IT9303 0x9306 -#define USB_PID_KWORLD_399U 0xe399 -#define USB_PID_KWORLD_399U_2 0xe400#define USB_PID_KWORLD_395U 0xe396#define USB_PID_KWORLD_395U_2 0xe39b#define USB_PID_KWORLD_395U_3 0xe395#define USB_PID_KWORLD_395U_4 0xe39a +#define USB_PID_KWORLD_399U 0xe399 +#define USB_PID_KWORLD_399U_2 0xe400#define USB_PID_KWORLD_MC810 0xc810 -#define USB_PID_KWORLD_PC160_2T 0xc160 +#define USB_PID_KWORLD_PC160_2T 0xc160#define USB_PID_KWORLD_PC160_T 0xc161#define USB_PID_KWORLD_UB383_T 0xe383#define USB_PID_KWORLD_UB499_2T_T09 0xe409#define USB_PID_KWORLD_VSTREAM_COLD 0x17de#define USB_PID_KWORLD_VSTREAM_WARM 0x17df +#define USB_PID_KYE_DVB_T_COLD 0x701e +#define USB_PID_KYE_DVB_T_WARM 0x701f +#define USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD 0x0514 +#define USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM 0x0513 +#define USB_PID_LITEON_DVB_T_COLD 0xf000 +#define USB_PID_LITEON_DVB_T_WARM 0xf001 +#define USB_PID_MEDION_MD95700 0x0932 +#define USB_PID_MSI_DIGIVOX_DUO 0x8801 +#define USB_PID_MSI_DIGI_VOX_MINI_II 0x1513 +#define USB_PID_MSI_DIGI_VOX_MINI_III 0x8807 +#define USB_PID_MSI_MEGASKY580 0x5580 +#define USB_PID_MSI_MEGASKY580_55801 0x5581 +#define USB_PID_MYGICA_D689 0xd811 +#define USB_PID_MYGICA_T230 0xc688 +#define USB_PID_MYGICA_T230A 0x689a +#define USB_PID_MYGICA_T230C 0xc689 +#define USB_PID_MYGICA_T230C2 0xc68a +#define USB_PID_MYGICA_T230C2_LITE 0xc69a +#define USB_PID_MYGICA_T230C_LITE 0xc699 +#define USB_PID_NEBULA_DIGITV 0x0201 +#define USB_PID_NOXON_DAB_STICK 0x00b3 +#define USB_PID_NOXON_DAB_STICK_REV2 0x00e0 +#define USB_PID_NOXON_DAB_STICK_REV3 0x00b4 +#define USB_PID_OPERA1_COLD 0x2830 +#define USB_PID_OPERA1_WARM 0x3829 +#define USB_PID_PCTV_2002E 0x025c +#define USB_PID_PCTV_2002E_SE 0x025d +#define USB_PID_PCTV_200E 0x020e +#define USB_PID_PCTV_400E 0x020f +#define USB_PID_PCTV_450E 0x0222 +#define USB_PID_PCTV_452E 0x021f +#define USB_PID_PCTV_78E 0x025a +#define USB_PID_PCTV_79E 0x0262 +#define USB_PID_PINNACLE_EXPRESSCARD_320CX 0x022e +#define USB_PID_PINNACLE_PCTV2000E 0x022c +#define USB_PID_PINNACLE_PCTV282E 0x0248 +#define USB_PID_PINNACLE_PCTV310E 0x3211 +#define USB_PID_PINNACLE_PCTV340E 0x023d +#define USB_PID_PINNACLE_PCTV340E_SE 0x023e +#define USB_PID_PINNACLE_PCTV71E 0x022b +#define USB_PID_PINNACLE_PCTV72E 0x0236 +#define USB_PID_PINNACLE_PCTV73A 0x0243 +#define USB_PID_PINNACLE_PCTV73E 0x0237 +#define USB_PID_PINNACLE_PCTV73ESE 0x0245 +#define USB_PID_PINNACLE_PCTV74E 0x0246 +#define USB_PID_PINNACLE_PCTV801E 0x023a +#define USB_PID_PINNACLE_PCTV801E_SE 0x023b +#define USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T 0x0229 +#define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228 +#define USB_PID_PIXELVIEW_SBTVD 0x5010#define USB_PID_PROF_1100 0xb012 +#define USB_PID_PROLECTRIX_DV107669 0xd803 +#define USB_PID_REALTEK_RTL2831U 0x2831 +#define USB_PID_REALTEK_RTL2832U 0x2832 +#define USB_PID_SIGMATEK_DVB_110 0x6610 +#define USB_PID_SONY_PLAYTV 0x0003 +#define USB_PID_SVEON_STV20 0xe39d +#define USB_PID_SVEON_STV20_RTL2832U 0xd39d +#define USB_PID_SVEON_STV21 0xd3b0 +#define USB_PID_SVEON_STV22 0xe401 +#define USB_PID_SVEON_STV22_IT9137 0xe411 +#define USB_PID_SVEON_STV27 0xd3af +#define USB_PID_TECHNISAT_AIRSTAR_TELESTICK_2 0x0004 +#define USB_PID_TECHNISAT_USB2_CABLESTAR_HDCI 0x0003 +#define USB_PID_TECHNISAT_USB2_DVB_S2 0x0500 +#define USB_PID_TECHNISAT_USB2_HDCI_V1 0x0001 +#define USB_PID_TECHNISAT_USB2_HDCI_V2 0x0002 +#define USB_PID_TECHNOTREND_CONNECT_CT2_4650_CI 0x3012 +#define USB_PID_TECHNOTREND_CONNECT_CT2_4650_CI_2 0x3015 +#define USB_PID_TECHNOTREND_CONNECT_CT3650 0x300d +#define USB_PID_TECHNOTREND_CONNECT_S2400 0x3006 +#define USB_PID_TECHNOTREND_CONNECT_S2400_8KEEPROM 0x3009 +#define USB_PID_TECHNOTREND_CONNECT_S2_3600 0x3007 +#define USB_PID_TECHNOTREND_CONNECT_S2_3650_CI 0x300a +#define USB_PID_TECHNOTREND_CONNECT_S2_4600 0x3011 +#define USB_PID_TECHNOTREND_CONNECT_S2_4650_CI 0x3017 +#define USB_PID_TECHNOTREND_TVSTICK_CT2_4400 0x3014 +#define USB_PID_TELESTAR_STARSTICK_2 0x8000 +#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a +#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY_2 0x0081 +#define USB_PID_TERRATEC_CINERGY_HT_EXPRESS 0x0060 +#define USB_PID_TERRATEC_CINERGY_HT_USB_XE 0x0058#define USB_PID_TERRATEC_CINERGY_S 0x0064 -#define USB_PID_TERRATEC_CINERGY_T_USB_XE 0x0055 -#define USB_PID_TERRATEC_CINERGY_T_USB_XE_REV2 0x0069 +#define USB_PID_TERRATEC_CINERGY_S2_1 0x1181 +#define USB_PID_TERRATEC_CINERGY_S2_2 0x1182 +#define USB_PID_TERRATEC_CINERGY_S2_R1 0x00a8 +#define USB_PID_TERRATEC_CINERGY_S2_R2 0x00b0 +#define USB_PID_TERRATEC_CINERGY_S2_R3 0x0102 +#define USB_PID_TERRATEC_CINERGY_S2_R4 0x0105 +#define USB_PID_TERRATEC_CINERGY_TC2_STICK 0x10b2 +#define USB_PID_TERRATEC_CINERGY_T_EXPRESS 0x0062#define USB_PID_TERRATEC_CINERGY_T_STICK 0x0093 -#define USB_PID_TERRATEC_CINERGY_T_STICK_RC 0x0097 -#define USB_PID_TERRATEC_CINERGY_T_STICK_DUAL_RC 0x0099#define USB_PID_TERRATEC_CINERGY_T_STICK_BLACK_REV1 0x00a9 -#define USB_PID_TERRATEC_CINERGY_TC2_STICK 0x10b2 -#define USB_PID_TWINHAN_VP7041_COLD 0x3201 -#define USB_PID_TWINHAN_VP7041_WARM 0x3202 +#define USB_PID_TERRATEC_CINERGY_T_STICK_DUAL_RC 0x0099 +#define USB_PID_TERRATEC_CINERGY_T_STICK_RC 0x0097 +#define USB_PID_TERRATEC_CINERGY_T_USB_XE 0x0055 +#define USB_PID_TERRATEC_CINERGY_T_USB_XE_REV2 0x0069 +#define USB_PID_TERRATEC_CINERGY_T_XXS 0x0078 +#define USB_PID_TERRATEC_CINERGY_T_XXS_2 0x00ab +#define USB_PID_TERRATEC_DVBS2CI_V1 0x10a4 +#define USB_PID_TERRATEC_DVBS2CI_V2 0x10ac +#define USB_PID_TERRATEC_H7 0x10b4 +#define USB_PID_TERRATEC_H7_2 0x10a3 +#define USB_PID_TERRATEC_H7_3 0x10a5 +#define USB_PID_TERRATEC_T1 0x10ae +#define USB_PID_TERRATEC_T3 0x10a0 +#define USB_PID_TERRATEC_T5 0x10a1 +#define USB_PID_TEVII_S421 0xd421 +#define USB_PID_TEVII_S480_1 0xd481 +#define USB_PID_TEVII_S480_2 0xd482 +#define USB_PID_TEVII_S630 0xd630 +#define USB_PID_TEVII_S632 0xd632 +#define USB_PID_TEVII_S650 0xd650 +#define USB_PID_TEVII_S660 0xd660 +#define USB_PID_TEVII_S662 0xd662 +#define USB_PID_TINYTWIN 0x3226 +#define USB_PID_TINYTWIN_2 0xe402 +#define USB_PID_TINYTWIN_3 0x9016 +#define USB_PID_TREKSTOR_DVBT 0x901b +#define USB_PID_TREKSTOR_TERRES_2_0 0xC803 +#define USB_PID_TURBOX_DTT_2000 0xd3a4 +#define USB_PID_TVWAY_PLUS 0x0002#define USB_PID_TWINHAN_VP7020_COLD 0x3203#define USB_PID_TWINHAN_VP7020_WARM 0x3204 -#define USB_PID_TWINHAN_VP7045_COLD 0x3205 -#define USB_PID_TWINHAN_VP7045_WARM 0x3206#define USB_PID_TWINHAN_VP7021_COLD 0x3207#define USB_PID_TWINHAN_VP7021_WARM 0x3208 +#define USB_PID_TWINHAN_VP7041_COLD 0x3201 +#define USB_PID_TWINHAN_VP7041_WARM 0x3202 +#define USB_PID_TWINHAN_VP7045_COLD 0x3205 +#define USB_PID_TWINHAN_VP7045_WARM 0x3206#define USB_PID_TWINHAN_VP7049 0x3219 -#define USB_PID_TINYTWIN 0x3226 -#define USB_PID_TINYTWIN_2 0xe402 -#define USB_PID_TINYTWIN_3 0x9016 -#define USB_PID_DNTV_TINYUSB2_COLD 0x3223 -#define USB_PID_DNTV_TINYUSB2_WARM 0x3224 -#define USB_PID_ULTIMA_TVBOX_COLD 0x8105 -#define USB_PID_ULTIMA_TVBOX_WARM 0x8106#define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107#define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108#define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235 +#define USB_PID_ULTIMA_TVBOX_COLD 0x8105#define USB_PID_ULTIMA_TVBOX_USB2_COLD 0x8109 -#define USB_PID_ULTIMA_TVBOX_USB2_WARM 0x810a -#define USB_PID_ARTEC_T14_COLD 0x810b -#define USB_PID_ARTEC_T14_WARM 0x810c -#define USB_PID_ARTEC_T14BR 0x810f#define USB_PID_ULTIMA_TVBOX_USB2_FX_COLD 0x8613#define USB_PID_ULTIMA_TVBOX_USB2_FX_WARM 0x1002 +#define USB_PID_ULTIMA_TVBOX_USB2_WARM 0x810a +#define USB_PID_ULTIMA_TVBOX_WARM 0x8106 +#define USB_PID_UNIWILL_STK7700P 0x6003#define USB_PID_UNK_HYPER_PALTEK_COLD 0x005e#define USB_PID_UNK_HYPER_PALTEK_WARM 0x005f -#define USB_PID_HANFTEK_UMT_010_COLD 0x0001 -#define USB_PID_HANFTEK_UMT_010_WARM 0x0015 -#define USB_PID_DTT200U_COLD 0x0201 -#define USB_PID_DTT200U_WARM 0x0301 -#define USB_PID_WT220U_ZAP250_COLD 0x0220 +#define USB_PID_WINFAST_DTV2000DS 0x6a04 +#define USB_PID_WINFAST_DTV2000DS_PLUS 0x6f12 +#define USB_PID_WINFAST_DTV_DONGLE_COLD 0x6025 +#define USB_PID_WINFAST_DTV_DONGLE_GOLD 0x6029 +#define USB_PID_WINFAST_DTV_DONGLE_H 0x60f6 +#define USB_PID_WINFAST_DTV_DONGLE_MINID 0x6f0f +#define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00 +#define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01 +#define USB_PID_WINFAST_DTV_DONGLE_WARM 0x6026 +#define USB_PID_WINTV_NOVA_T_USB2_COLD 0x9300 +#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301 +#define USB_PID_WINTV_SOLOHD 0x0264 +#define USB_PID_WINTV_SOLOHD_2 0x8268#define USB_PID_WT220U_COLD 0x0222 -#define USB_PID_WT220U_WARM 0x0221#define USB_PID_WT220U_FC_COLD 0x0225#define USB_PID_WT220U_FC_WARM 0x0226 +#define USB_PID_WT220U_WARM 0x0221 +#define USB_PID_WT220U_ZAP250_COLD 0x0220#define USB_PID_WT220U_ZL0353_COLD 0x022a#define USB_PID_WT220U_ZL0353_WARM 0x022b -#define USB_PID_WINTV_NOVA_T_USB2_COLD 0x9300 -#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301 -#define USB_PID_HAUPPAUGE_NOVA_T_500 0x9941 -#define USB_PID_HAUPPAUGE_NOVA_T_500_2 0x9950 -#define USB_PID_HAUPPAUGE_NOVA_T_500_3 0x8400 -#define USB_PID_HAUPPAUGE_NOVA_T_STICK 0x7050 -#define USB_PID_HAUPPAUGE_NOVA_T_STICK_2 0x7060 -#define USB_PID_HAUPPAUGE_NOVA_T_STICK_3 0x7070 -#define USB_PID_HAUPPAUGE_MYTV_T 0x7080 -#define USB_PID_HAUPPAUGE_NOVA_TD_STICK 0x9580 -#define USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009 0x5200 -#define USB_PID_HAUPPAUGE_TIGER_ATSC 0xb200 -#define USB_PID_HAUPPAUGE_TIGER_ATSC_B210 0xb210 -#define USB_PID_AVERMEDIA_EXPRESS 0xb568 -#define USB_PID_AVERMEDIA_VOLAR 0xa807 -#define USB_PID_AVERMEDIA_VOLAR_2 0xb808 -#define USB_PID_AVERMEDIA_VOLAR_A868R 0xa868 -#define USB_PID_AVERMEDIA_MCE_USB_M038 0x1228 -#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R 0x0039 -#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R_ATSC 0x1039 -#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R_DVBT 0x2039 -#define USB_PID_AVERMEDIA_VOLAR_X 0xa815 -#define USB_PID_AVERMEDIA_VOLAR_X_2 0x8150 -#define USB_PID_AVERMEDIA_A309 0xa309 -#define USB_PID_AVERMEDIA_A310 0xa310 -#define USB_PID_AVERMEDIA_A850 0x850a -#define USB_PID_AVERMEDIA_A850T 0x850b -#define USB_PID_AVERMEDIA_A805 0xa805 -#define USB_PID_AVERMEDIA_A815M 0x815a -#define USB_PID_AVERMEDIA_A835 0xa835 -#define USB_PID_AVERMEDIA_B835 0xb835 -#define USB_PID_AVERMEDIA_A835B_1835 0x1835 -#define USB_PID_AVERMEDIA_A835B_2835 0x2835 -#define USB_PID_AVERMEDIA_A835B_3835 0x3835 -#define USB_PID_AVERMEDIA_A835B_4835 0x4835 -#define USB_PID_AVERMEDIA_1867 0x1867 -#define USB_PID_AVERMEDIA_A867 0xa867 -#define USB_PID_AVERMEDIA_H335 0x0335 -#define USB_PID_AVERMEDIA_TD110 0xa110 -#define USB_PID_AVERMEDIA_TD310 0x1871 -#define USB_PID_AVERMEDIA_TWINSTAR 0x0825 -#define USB_PID_TECHNOTREND_CONNECT_S2400 0x3006 -#define USB_PID_TECHNOTREND_CONNECT_S2400_8KEEPROM 0x3009 -#define USB_PID_TECHNOTREND_CONNECT_CT3650 0x300d -#define USB_PID_TECHNOTREND_CONNECT_S2_4600 0x3011 -#define USB_PID_TECHNOTREND_CONNECT_CT2_4650_CI 0x3012 -#define USB_PID_TECHNOTREND_CONNECT_CT2_4650_CI_2 0x3015 -#define USB_PID_TECHNOTREND_TVSTICK_CT2_4400 0x3014 -#define USB_PID_TECHNOTREND_CONNECT_S2_4650_CI 0x3017 -#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a -#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY_2 0x0081 -#define USB_PID_TERRATEC_CINERGY_HT_USB_XE 0x0058 -#define USB_PID_TERRATEC_CINERGY_HT_EXPRESS 0x0060 -#define USB_PID_TERRATEC_CINERGY_T_EXPRESS 0x0062 -#define USB_PID_TERRATEC_CINERGY_T_XXS 0x0078 -#define USB_PID_TERRATEC_CINERGY_T_XXS_2 0x00ab -#define USB_PID_TERRATEC_CINERGY_S2_R1 0x00a8 -#define USB_PID_TERRATEC_CINERGY_S2_R2 0x00b0 -#define USB_PID_TERRATEC_CINERGY_S2_R3 0x0102 -#define USB_PID_TERRATEC_CINERGY_S2_R4 0x0105 -#define USB_PID_TERRATEC_CINERGY_S2_1 0x1181 -#define USB_PID_TERRATEC_CINERGY_S2_2 0x1182 -#define USB_PID_TERRATEC_H7 0x10b4 -#define USB_PID_TERRATEC_H7_2 0x10a3 -#define USB_PID_TERRATEC_H7_3 0x10a5 -#define USB_PID_TERRATEC_T1 0x10ae -#define USB_PID_TERRATEC_T3 0x10a0 -#define USB_PID_TERRATEC_T5 0x10a1 -#define USB_PID_NOXON_DAB_STICK 0x00b3 -#define USB_PID_NOXON_DAB_STICK_REV2 0x00e0 -#define USB_PID_NOXON_DAB_STICK_REV3 0x00b4 -#define USB_PID_PINNACLE_EXPRESSCARD_320CX 0x022e -#define USB_PID_PINNACLE_PCTV2000E 0x022c -#define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228 -#define USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T 0x0229 -#define USB_PID_PINNACLE_PCTV71E 0x022b -#define USB_PID_PINNACLE_PCTV72E 0x0236 -#define USB_PID_PINNACLE_PCTV73E 0x0237 -#define USB_PID_PINNACLE_PCTV310E 0x3211 -#define USB_PID_PINNACLE_PCTV801E 0x023a -#define USB_PID_PINNACLE_PCTV801E_SE 0x023b -#define USB_PID_PINNACLE_PCTV340E 0x023d -#define USB_PID_PINNACLE_PCTV340E_SE 0x023e -#define USB_PID_PINNACLE_PCTV73A 0x0243 -#define USB_PID_PINNACLE_PCTV73ESE 0x0245 -#define USB_PID_PINNACLE_PCTV74E 0x0246 -#define USB_PID_PINNACLE_PCTV282E 0x0248 -#define USB_PID_PIXELVIEW_SBTVD 0x5010 -#define USB_PID_PCTV_200E 0x020e -#define USB_PID_PCTV_400E 0x020f -#define USB_PID_PCTV_450E 0x0222 -#define USB_PID_PCTV_452E 0x021f -#define USB_PID_PCTV_78E 0x025a -#define USB_PID_PCTV_79E 0x0262 -#define USB_PID_REALTEK_RTL2831U 0x2831 -#define USB_PID_REALTEK_RTL2832U 0x2832 -#define USB_PID_TECHNOTREND_CONNECT_S2_3600 0x3007 -#define USB_PID_TECHNOTREND_CONNECT_S2_3650_CI 0x300a -#define USB_PID_NEBULA_DIGITV 0x0201 -#define USB_PID_DVICO_BLUEBIRD_LGDT 0xd820 -#define USB_PID_DVICO_BLUEBIRD_LG064F_COLD 0xd500 -#define USB_PID_DVICO_BLUEBIRD_LG064F_WARM 0xd501 -#define USB_PID_DVICO_BLUEBIRD_LGZ201_COLD 0xdb00 -#define USB_PID_DVICO_BLUEBIRD_LGZ201_WARM 0xdb01 -#define USB_PID_DVICO_BLUEBIRD_TH7579_COLD 0xdb10 -#define USB_PID_DVICO_BLUEBIRD_TH7579_WARM 0xdb11 -#define USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD 0xdb50 -#define USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM 0xdb51 -#define USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD 0xdb58 -#define USB_PID_DVICO_BLUEBIRD_DUAL_2_WARM 0xdb59 -#define USB_PID_DVICO_BLUEBIRD_DUAL_4 0xdb78 -#define USB_PID_DVICO_BLUEBIRD_DUAL_4_REV_2 0xdb98 -#define USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2 0xdb70 -#define USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM 0xdb71 -#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD 0xdb54 -#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM 0xdb55 -#define USB_PID_MEDION_MD95700 0x0932 -#define USB_PID_MSI_MEGASKY580 0x5580 -#define USB_PID_MSI_MEGASKY580_55801 0x5581 -#define USB_PID_KYE_DVB_T_COLD 0x701e -#define USB_PID_KYE_DVB_T_WARM 0x701f -#define USB_PID_LITEON_DVB_T_COLD 0xf000 -#define USB_PID_LITEON_DVB_T_WARM 0xf001 -#define USB_PID_DIGIVOX_MINI_SL_COLD 0xe360 -#define USB_PID_DIGIVOX_MINI_SL_WARM 0xe361 -#define USB_PID_GRANDTEC_DVBT_USB2_COLD 0x0bc6 -#define USB_PID_GRANDTEC_DVBT_USB2_WARM 0x0bc7 -#define USB_PID_WINFAST_DTV2000DS 0x6a04 -#define USB_PID_WINFAST_DTV2000DS_PLUS 0x6f12 -#define USB_PID_WINFAST_DTV_DONGLE_COLD 0x6025 -#define USB_PID_WINFAST_DTV_DONGLE_WARM 0x6026 -#define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00 -#define USB_PID_WINFAST_DTV_DONGLE_H 0x60f6 -#define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01 -#define USB_PID_WINFAST_DTV_DONGLE_GOLD 0x6029 -#define USB_PID_WINFAST_DTV_DONGLE_MINID 0x6f0f -#define USB_PID_GENPIX_8PSK_REV_1_COLD 0x0200 -#define USB_PID_GENPIX_8PSK_REV_1_WARM 0x0201 -#define USB_PID_GENPIX_8PSK_REV_2 0x0202 -#define USB_PID_GENPIX_SKYWALKER_1 0x0203 -#define USB_PID_GENPIX_SKYWALKER_CW3K 0x0204 -#define USB_PID_GENPIX_SKYWALKER_2 0x0206 -#define USB_PID_SIGMATEK_DVB_110 0x6610 -#define USB_PID_MSI_DIGI_VOX_MINI_II 0x1513 -#define USB_PID_MSI_DIGIVOX_DUO 0x8801 -#define USB_PID_OPERA1_COLD 0x2830 -#define USB_PID_OPERA1_WARM 0x3829 -#define USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD 0x0514 -#define USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM 0x0513 -#define USB_PID_GIGABYTE_U7000 0x7001 -#define USB_PID_GIGABYTE_U8000 0x7002 -#define USB_PID_ASUS_U3000 0x171f -#define USB_PID_ASUS_U3000H 0x1736 -#define USB_PID_ASUS_U3100 0x173f -#define USB_PID_ASUS_U3100MINI_PLUS 0x1779 +#define USB_PID_XBOX_ONE_TUNER 0x02d5 +#define USB_PID_XTENSIONS_XD_380 0x0381#define USB_PID_YUAN_EC372S 0x1edc -#define USB_PID_YUAN_STK7700PH 0x1f08 -#define USB_PID_YUAN_PD378S 0x2edc#define USB_PID_YUAN_MC770 0x0871 +#define USB_PID_YUAN_PD378S 0x2edc#define USB_PID_YUAN_STK7700D 0x1efc -#define USB_PID_YUAN_STK7700D_2 0x1e8c -#define USB_PID_DW2102 0x2102 -#define USB_PID_DW2104 0x2104 -#define USB_PID_DW3101 0x3101 -#define USB_PID_XTENSIONS_XD_380 0x0381 -#define USB_PID_TELESTAR_STARSTICK_2 0x8000 -#define USB_PID_MSI_DIGI_VOX_MINI_III 0x8807 -#define USB_PID_SONY_PLAYTV 0x0003 -#define USB_PID_MYGICA_D689 0xd811 -#define USB_PID_MYGICA_T230 0xc688 -#define USB_PID_MYGICA_T230C 0xc689 -#define USB_PID_MYGICA_T230C2 0xc68a -#define USB_PID_MYGICA_T230C_LITE 0xc699 -#define USB_PID_MYGICA_T230C2_LITE 0xc69a -#define USB_PID_MYGICA_T230A 0x689a -#define USB_PID_ELGATO_EYETV_DIVERSITY 0x0011 -#define USB_PID_ELGATO_EYETV_DTT 0x0021 -#define USB_PID_ELGATO_EYETV_DTT_2 0x003f -#define USB_PID_ELGATO_EYETV_DTT_Dlx 0x0020 -#define USB_PID_ELGATO_EYETV_SAT 0x002a -#define USB_PID_ELGATO_EYETV_SAT_V2 0x0025 -#define USB_PID_ELGATO_EYETV_SAT_V3 0x0036 -#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000 -#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM 0x5001 -#define USB_PID_FRIIO_WHITE 0x0001 -#define USB_PID_TVWAY_PLUS 0x0002 -#define USB_PID_SVEON_STV20 0xe39d -#define USB_PID_SVEON_STV20_RTL2832U 0xd39d -#define USB_PID_SVEON_STV21 0xd3b0 -#define USB_PID_SVEON_STV22 0xe401 -#define USB_PID_SVEON_STV22_IT9137 0xe411 -#define USB_PID_AZUREWAVE_AZ6027 0x3275 -#define USB_PID_TERRATEC_DVBS2CI_V1 0x10a4 -#define USB_PID_TERRATEC_DVBS2CI_V2 0x10ac -#define USB_PID_TECHNISAT_USB2_HDCI_V1 0x0001 -#define USB_PID_TECHNISAT_USB2_HDCI_V2 0x0002 -#define USB_PID_TECHNISAT_USB2_CABLESTAR_HDCI 0x0003 -#define USB_PID_TECHNISAT_AIRSTAR_TELESTICK_2 0x0004 -#define USB_PID_TECHNISAT_USB2_DVB_S2 0x0500 -#define USB_PID_CPYTO_REDI_PC50A 0xa803 -#define USB_PID_CTVDIGDUAL_V2 0xe410 -#define USB_PID_PCTV_2002E 0x025c -#define USB_PID_PCTV_2002E_SE 0x025d -#define USB_PID_SVEON_STV27 0xd3af -#define USB_PID_TURBOX_DTT_2000 0xd3a4 -#define USB_PID_WINTV_SOLOHD 0x0264 -#define USB_PID_WINTV_SOLOHD_2 0x8268 -#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115 -#define USB_PID_HAMA_DVBT_HYBRID 0x2758 -#define USB_PID_XBOX_ONE_TUNER 0x02d5 -#define USB_PID_PROLECTRIX_DV107669 0xd803 +#define USB_PID_YUAN_STK7700D_2 0x1e8c +#define USB_PID_YUAN_STK7700PH 0x1f08 +#endif
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 2/26 media: dvb-usb: move USB IDs to dvb-usb-ids.h
In reply to Mauro Carvalho ChehabAlmost all drivers based on dvb-usb place their USB IDs at dvb-usb-ids.h. In order to make it more standard, place the remaining ones also there.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/cinergyT2-core.c | 2 +- drivers/media/usb/dvb-usb/dtv5100.c | 2 +- drivers/media/usb/dvb-usb/dw2102.c | 38 +++++++++++----------- include/media/dvb-usb-ids.h | 16 +++++++++ 4 files changed, 37 insertions(+), 21 deletions(-)
drivers/media/usb/dvb-usb/cinergyT2-core.c +1 -1
@@ -194,7 +194,7 @@ static int cinergyt2_usb_probe(struct usb_interface *intf, }static struct usb_device_id cinergyt2_usb_table[] = { - {USB_DEVICE (USB_VID_TERRATEC ,0x0038 ) }, + {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_T2 ) }, {0 } };
drivers/media/usb/dvb-usb/dtv5100.c +1 -1
@@ -163,7 +163,7 @@ static int dtv5100_probe(struct usb_interface *intf, }static struct usb_device_id dtv5100_table[] = { - {USB_DEVICE (0x06be ,0xa232 ) }, + {USB_DEVICE (USB_VID_AME ,USB_PID_AME_DTV5100 ) }, { }/* Terminating entry */ };MODULE_DEVICE_TABLE (usb, dtv5100_table);
drivers/media/usb/dvb-usb/dw2102.c +19 -19
@@ -1793,23 +1793,23 @@ enum dw2102_table_entry {static struct usb_device_id dw2102_table[] = { [CYPRESS_DW2102 ] = {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW2102 )}, - [CYPRESS_DW2101 ] = {USB_DEVICE (USB_VID_CYPRESS ,0x2101 )}, + [CYPRESS_DW2101 ] = {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW2101 )}, [CYPRESS_DW2104 ] = {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW2104 )}, - [TEVII_S650 ] = {USB_DEVICE (0x9022 ,USB_PID_TEVII_S650 )}, + [TEVII_S650 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S650 )}, [TERRATEC_CINERGY_S ] = {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_S )}, [CYPRESS_DW3101 ] = {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW3101 )}, - [TEVII_S630 ] = {USB_DEVICE (0x9022 ,USB_PID_TEVII_S630 )}, - [PROF_1100 ] = {USB_DEVICE (0x3011 ,USB_PID_PROF_1100 )}, - [TEVII_S660 ] = {USB_DEVICE (0x9022 ,USB_PID_TEVII_S660 )}, - [PROF_7500 ] = {USB_DEVICE (0x3034 ,0x7500 )}, - [GENIATECH_SU3000 ] = {USB_DEVICE (0x1f4d ,0x3000 )}, - [HAUPPAUGE_MAX_S2 ] = {USB_DEVICE (0x2040 ,0xd900 )}, + [TEVII_S630 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S630 )}, + [PROF_1100 ] = {USB_DEVICE (USB_VID_PROF_1 ,USB_PID_PROF_1100 )}, + [TEVII_S660 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S660 )}, + [PROF_7500 ] = {USB_DEVICE (USB_VID_PROF_2 ,USB_PID_PROF_7500 )}, + [GENIATECH_SU3000 ] = {USB_DEVICE (USB_VID_GTEK ,USB_PID_GENIATECH_SU3000 )}, + [HAUPPAUGE_MAX_S2 ] = {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_MAX_S2 )}, [TERRATEC_CINERGY_S2 ] = {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_S2_R1 )}, - [TEVII_S480_1 ] = {USB_DEVICE (0x9022 ,USB_PID_TEVII_S480_1 )}, - [TEVII_S480_2 ] = {USB_DEVICE (0x9022 ,USB_PID_TEVII_S480_2 )}, - [X3M_SPC1400HD ] = {USB_DEVICE (0x1f4d ,0x3100 )}, - [TEVII_S421 ] = {USB_DEVICE (0x9022 ,USB_PID_TEVII_S421 )}, - [TEVII_S632 ] = {USB_DEVICE (0x9022 ,USB_PID_TEVII_S632 )}, + [TEVII_S480_1 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S480_1 )}, + [TEVII_S480_2 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S480_2 )}, + [X3M_SPC1400HD ] = {USB_DEVICE (USB_VID_GTEK ,USB_PID_GENIATECH_X3M_SPC1400HD )}, + [TEVII_S421 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S421 )}, + [TEVII_S632 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S632 )}, [TERRATEC_CINERGY_S2_R2 ] = {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_S2_R2 )}, [TERRATEC_CINERGY_S2_R3] = {USB_DEVICE(USB_VID_TERRATEC,
@@ -1820,14 +1820,14 @@ static struct usb_device_id dw2102_table[] = { USB_PID_TERRATEC_CINERGY_S2_1)}, [TERRATEC_CINERGY_S2_2] = {USB_DEVICE(USB_VID_TERRATEC_2, USB_PID_TERRATEC_CINERGY_S2_2)}, - [GOTVIEW_SAT_HD] = {USB_DEVICE(0x1FE1, USB_PID_GOTVIEW_SAT_HD)}, - [GENIATECH_T220] = {USB_DEVICE(0x1f4d, 0xD220)}, + [GOTVIEW_SAT_HD] = {USB_DEVICE(USB_VID_GOTVIEW, USB_PID_GOTVIEW_SAT_HD)}, + [GENIATECH_T220] = {USB_DEVICE(USB_VID_GTEK, USB_PID_GENIATECH_T220)}, [TECHNOTREND_S2_4600] = {USB_DEVICE(USB_VID_TECHNOTREND, USB_PID_TECHNOTREND_CONNECT_S2_4600)}, - [TEVII_S482_1] = {USB_DEVICE(0x9022, 0xd483)}, - [TEVII_S482_2] = {USB_DEVICE(0x9022, 0xd484)}, - [TERRATEC_CINERGY_S2_BOX] = {USB_DEVICE(USB_VID_TERRATEC, 0x0105)}, - [TEVII_S662] = {USB_DEVICE(0x9022, USB_PID_TEVII_S662)}, + [TEVII_S482_1] = {USB_DEVICE(USB_VID_TEVII, USB_PID_TTEVII_S482_1)}, + [TEVII_S482_2] = {USB_DEVICE(USB_VID_TEVII, USB_PID_TTEVII_S482_2)}, + [TERRATEC_CINERGY_S2_BOX] = {USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_S2_BOX)}, + [TEVII_S662] = {USB_DEVICE(USB_VID_TEVII, USB_PID_TEVII_S662)}, { } };
include/media/dvb-usb-ids.h +16 -0
@@ -17,6 +17,7 @@#define USB_VID_AFATECH 0x15a4#define USB_VID_ALCOR_MICRO 0x058f#define USB_VID_ALINK 0x05e3 +#define USB_VID_AME 0x06be#define USB_VID_AMT 0x1c73#define USB_VID_ANCHOR 0x0547#define USB_VID_ANSONIC 0x10b9
@@ -38,6 +39,7 @@#define USB_VID_EVOLUTEPC 0x1e59#define USB_VID_GENPIX 0x09c0#define USB_VID_GIGABYTE 0x1044 +#define USB_VID_GOTVIEW 0x1fe1#define USB_VID_GRANDTEC 0x5032#define USB_VID_GTEK 0x1f4d#define USB_VID_HAMA 0x147f
@@ -61,6 +63,8 @@#define USB_VID_PCTV 0x2013#define USB_VID_PINNACLE 0x2304#define USB_VID_PIXELVIEW 0x1554 +#define USB_VID_PROF_1 0x3011 +#define USB_VID_PROF_2 0x3034#define USB_VID_REALTEK 0x0bda#define USB_VID_SONY 0x1415#define USB_VID_TECHNISAT 0x14f7
@@ -68,6 +72,7 @@#define USB_VID_TELESTAR 0x10b9#define USB_VID_TERRATEC 0x0ccd#define USB_VID_TERRATEC_2 0x153b +#define USB_VID_TEVII 0x9022#define USB_VID_TWINHAN 0x1822#define USB_VID_ULTIMA_ELECTRONIC 0x05d8#define USB_VID_UNIWILL 0x1584
@@ -90,6 +95,7 @@#define USB_PID_AFATECH_AF9035_1003 0x1003#define USB_PID_AFATECH_AF9035_9035 0x9035#define USB_PID_ALINK_DTU 0xf170 +#define USB_PID_AME_DTV5100 0xa232#define USB_PID_ANSONIC_DVBT_USB 0x6000#define USB_PID_ANYSEE 0x861f#define USB_PID_ARTEC_T14BR 0x810f
@@ -198,6 +204,7 @@#define USB_PID_DVICO_BLUEBIRD_LGZ201_WARM 0xdb01#define USB_PID_DVICO_BLUEBIRD_TH7579_COLD 0xdb10#define USB_PID_DVICO_BLUEBIRD_TH7579_WARM 0xdb11 +#define USB_PID_DW2101 0x2101#define USB_PID_DW2102 0x2102#define USB_PID_DW2104 0x2104#define USB_PID_DW3101 0x3101
@@ -217,6 +224,9 @@#define USB_PID_FREECOM_DVBT 0x0160#define USB_PID_FREECOM_DVBT_2 0x0161#define USB_PID_FRIIO_WHITE 0x0001 +#define USB_PID_GENIATECH_SU3000 0x3000 +#define USB_PID_GENIATECH_T220 0xd220 +#define USB_PID_GENIATECH_X3M_SPC1400HD 0x3100#define USB_PID_GENIUS_TVGO_DVB_T03 0x4012#define USB_PID_GENPIX_8PSK_REV_1_COLD 0x0200#define USB_PID_GENPIX_8PSK_REV_1_WARM 0x0201
@@ -234,6 +244,7 @@#define USB_PID_HAMA_DVBT_HYBRID 0x2758#define USB_PID_HANFTEK_UMT_010_COLD 0x0001#define USB_PID_HANFTEK_UMT_010_WARM 0x0015 +#define USB_PID_HAUPPAUGE_MAX_S2 0xd900#define USB_PID_HAUPPAUGE_MYTV_T 0x7080#define USB_PID_HAUPPAUGE_NOVA_TD_STICK 0x9580#define USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009 0x5200
@@ -314,6 +325,7 @@#define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228#define USB_PID_PIXELVIEW_SBTVD 0x5010#define USB_PID_PROF_1100 0xb012 +#define USB_PID_PROF_7500 0x7500#define USB_PID_PROLECTRIX_DV107669 0xd803#define USB_PID_REALTEK_RTL2831U 0x2831#define USB_PID_REALTEK_RTL2832U 0x2832
@@ -348,10 +360,12 @@#define USB_PID_TERRATEC_CINERGY_S 0x0064#define USB_PID_TERRATEC_CINERGY_S2_1 0x1181#define USB_PID_TERRATEC_CINERGY_S2_2 0x1182 +#define USB_PID_TERRATEC_CINERGY_S2_BOX 0x0105#define USB_PID_TERRATEC_CINERGY_S2_R1 0x00a8#define USB_PID_TERRATEC_CINERGY_S2_R2 0x00b0#define USB_PID_TERRATEC_CINERGY_S2_R3 0x0102#define USB_PID_TERRATEC_CINERGY_S2_R4 0x0105 +#define USB_PID_TERRATEC_CINERGY_T2 0x0038#define USB_PID_TERRATEC_CINERGY_TC2_STICK 0x10b2#define USB_PID_TERRATEC_CINERGY_T_EXPRESS 0x0062#define USB_PID_TERRATEC_CINERGY_T_STICK 0x0093
@@ -383,6 +397,8 @@#define USB_PID_TINYTWIN_3 0x9016#define USB_PID_TREKSTOR_DVBT 0x901b#define USB_PID_TREKSTOR_TERRES_2_0 0xC803 +#define USB_PID_TTEVII_S482_1 0xd483 +#define USB_PID_TTEVII_S482_2 0xd484#define USB_PID_TURBOX_DTT_2000 0xd3a4#define USB_PID_TVWAY_PLUS 0x0002#define USB_PID_TWINHAN_VP7020_COLD 0x3203
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 3/26 media: dvb-usb: vp702x: reference to usb ID table
In reply to Mauro Carvalho ChehabThere are two commented entries that are pointing to the wrong places. Fix them.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/vp702x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/media/usb/dvb-usb/vp702x.c +2 -2
@@ -425,8 +425,8 @@ static struct dvb_usb_device_properties vp702x_properties = { .warm_ids = { NULL }, },/* { .name = "TwinhanDTV StarBox DVB-S USB2.0 (VP7020)", -.cold_ids = { &vp702x_usb_table[2], NULL }, -.warm_ids = { &vp702x_usb_table[3], NULL }, +.cold_ids = { &vp702x_usb_table[1], NULL }, +.warm_ids = { &vp702x_usb_table[2], NULL }, }, */ { NULL }, }
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 4/26 media: dvb-usb: Add helper macros for using USB VID/PID
In reply to Mauro Carvalho ChehabIn order to use designated initializers and to avoid avoid big lines at the USB ID tables, define some helper macros.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
include/media/dvb-usb-ids.h | 8 ++++++++ 1 file changed, 8 insertions(+)
include/media/dvb-usb-ids.h +8 -0
@@ -10,6 +10,14 @@#ifndef _DVB_USB_IDS_H_#define _DVB_USB_IDS_H_ +#include <linux/usb.h> + +#define DVB_USB_DEV (pid, vid) \ + [vid] = { USB_DEVICE(USB_VID_ ## pid, USB_PID_ ## vid) } + +#define DVB_USB_DEV_VER (pid, vid, lo, hi) \ + [vid] = { USB_DEVICE_VER(USB_VID_ ## pid, USB_PID_ ## vid, lo, hi) } +/* Vendor IDs */ #define USB_VID_774 0x7a69
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 5/26 media: dvb-usb: a800: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/a800.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-)
drivers/media/usb/dvb-usb/a800.c +12 -6
@@ -72,11 +72,17 @@ static int a800_probe(struct usb_interface *intf, }/* do not change the order of the ID table */ -static struct usb_device_id a800_table [] = { -/* 00 */ {USB_DEVICE (USB_VID_AVERMEDIA ,USB_PID_AVERMEDIA_DVBT_USB2_COLD ) }, -/* 01 */ {USB_DEVICE (USB_VID_AVERMEDIA ,USB_PID_AVERMEDIA_DVBT_USB2_WARM ) }, - { }/* Terminating entry */ +enum { +AVERMEDIA_DVBT_USB2_COLD , +AVERMEDIA_DVBT_USB2_WARM , }; + +static struct usb_device_id a800_table[] = { +DVB_USB_DEV (AVERMEDIA ,AVERMEDIA_DVBT_USB2_COLD ), +DVB_USB_DEV (AVERMEDIA ,AVERMEDIA_DVBT_USB2_WARM ), + { } +}; +MODULE_DEVICE_TABLE (usb, a800_table);static struct dvb_usb_device_properties a800_properties = {
@@ -132,8 +138,8 @@ static struct dvb_usb_device_properties a800_properties = { .num_device_descs = 1, .devices = { { "AVerMedia AverTV DVB-T USB 2.0 (A800)", - { &a800_table[0], NULL }, - { &a800_table[1], NULL }, + { &a800_table[AVERMEDIA_DVBT_USB2_COLD], NULL }, + { &a800_table[AVERMEDIA_DVBT_USB2_WARM], NULL }, }, } };
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 6/26 media: af9005: use the newer dvb-usb macros for USB device
In reply to Mauro Carvalho ChehabIn order to make the drivers under dvb-usb more homogeneous, use the new macro.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/af9005.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-)
drivers/media/usb/dvb-usb/af9005.c +8 -11
@@ -994,19 +994,16 @@ static int af9005_usb_probe(struct usb_interface *intf, THIS_MODULE, NULL, adapter_nr); } -enum af9005_usb_table_entry { +enum {AFATECH_AF9005 , -TERRATEC_AF9005 , -ANSONIC_AF9005 , +TERRATEC_CINERGY_T_USB_XE , +ANSONIC_DVBT_USB , };static struct usb_device_id af9005_usb_table[] = { - [AFATECH_AF9005 ] = {USB_DEVICE (USB_VID_AFATECH , -USB_PID_AFATECH_AF9005 )}, - [TERRATEC_AF9005 ] = {USB_DEVICE (USB_VID_TERRATEC , -USB_PID_TERRATEC_CINERGY_T_USB_XE )}, - [ANSONIC_AF9005 ] = {USB_DEVICE (USB_VID_ANSONIC , -USB_PID_ANSONIC_DVBT_USB )}, +DVB_USB_DEV (AFATECH ,AFATECH_AF9005 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_T_USB_XE ), +DVB_USB_DEV (ANSONIC ,ANSONIC_DVBT_USB ), { } };
@@ -1071,11 +1068,11 @@ static struct dvb_usb_device_properties af9005_properties = { .warm_ids = {NULL}, }, {.name = "TerraTec Cinergy T USB XE", - .cold_ids = {&af9005_usb_table[TERRATEC_AF9005], NULL}, + .cold_ids = {&af9005_usb_table[TERRATEC_CINERGY_T_USB_XE], NULL}, .warm_ids = {NULL}, }, {.name = "Ansonic DVB-T USB1.1 stick", - .cold_ids = {&af9005_usb_table[ANSONIC_AF9005], NULL}, + .cold_ids = {&af9005_usb_table[ANSONIC_DVBT_USB], NULL}, .warm_ids = {NULL}, }, {NULL},
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 7/26 media: dvb-usb: az6027: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/az6027.c | 45 +++++++++++++++++++----------- 1 file changed, 28 insertions(+), 17 deletions(-)
drivers/media/usb/dvb-usb/az6027.c +28 -17
@@ -1080,16 +1080,27 @@ static int az6027_identify_state(struct usb_device *udev, } +enum { +AZUREWAVE_AZ6027 , +TERRATEC_DVBS2CI_V1 , +TERRATEC_DVBS2CI_V2 , +TECHNISAT_USB2_HDCI_V1 , +TECHNISAT_USB2_HDCI_V2 , +ELGATO_EYETV_SAT , +ELGATO_EYETV_SAT_V2 , +ELGATO_EYETV_SAT_V3 , +}; +static struct usb_device_id az6027_usb_table[] = { - {USB_DEVICE (USB_VID_AZUREWAVE ,USB_PID_AZUREWAVE_AZ6027 ) }, - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_DVBS2CI_V1 ) }, - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_DVBS2CI_V2 ) }, - {USB_DEVICE (USB_VID_TECHNISAT ,USB_PID_TECHNISAT_USB2_HDCI_V1 ) }, - {USB_DEVICE (USB_VID_TECHNISAT ,USB_PID_TECHNISAT_USB2_HDCI_V2 ) }, - {USB_DEVICE (USB_VID_ELGATO ,USB_PID_ELGATO_EYETV_SAT ) }, - {USB_DEVICE (USB_VID_ELGATO ,USB_PID_ELGATO_EYETV_SAT_V2 ) }, - {USB_DEVICE (USB_VID_ELGATO ,USB_PID_ELGATO_EYETV_SAT_V3 ) }, - { }, +DVB_USB_DEV (AZUREWAVE ,AZUREWAVE_AZ6027 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_DVBS2CI_V1 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_DVBS2CI_V2 ), +DVB_USB_DEV (TECHNISAT ,TECHNISAT_USB2_HDCI_V1 ), +DVB_USB_DEV (TECHNISAT ,TECHNISAT_USB2_HDCI_V2 ), +DVB_USB_DEV (ELGATO ,ELGATO_EYETV_SAT ), +DVB_USB_DEV (ELGATO ,ELGATO_EYETV_SAT_V2 ), +DVB_USB_DEV (ELGATO ,ELGATO_EYETV_SAT_V3 ), + { } };MODULE_DEVICE_TABLE (usb, az6027_usb_table);
@@ -1141,35 +1152,35 @@ static struct dvb_usb_device_properties az6027_properties = { .devices = { { .name = "AZUREWAVE DVB-S/S2 USB2.0 (AZ6027)", - .cold_ids = { &az6027_usb_table[0], NULL }, + .cold_ids = { &az6027_usb_table[AZUREWAVE_AZ6027], NULL }, .warm_ids = { NULL }, }, { .name = "TERRATEC S7", - .cold_ids = { &az6027_usb_table[1], NULL }, + .cold_ids = { &az6027_usb_table[TERRATEC_DVBS2CI_V1], NULL }, .warm_ids = { NULL }, }, { .name = "TERRATEC S7 MKII", - .cold_ids = { &az6027_usb_table[2], NULL }, + .cold_ids = { &az6027_usb_table[TERRATEC_DVBS2CI_V2], NULL }, .warm_ids = { NULL }, }, { .name = "Technisat SkyStar USB 2 HD CI", - .cold_ids = { &az6027_usb_table[3], NULL }, + .cold_ids = { &az6027_usb_table[TECHNISAT_USB2_HDCI_V1], NULL }, .warm_ids = { NULL }, }, { .name = "Technisat SkyStar USB 2 HD CI", - .cold_ids = { &az6027_usb_table[4], NULL }, + .cold_ids = { &az6027_usb_table[TECHNISAT_USB2_HDCI_V2], NULL }, .warm_ids = { NULL }, }, { .name = "Elgato EyeTV Sat", - .cold_ids = { &az6027_usb_table[5], NULL }, + .cold_ids = { &az6027_usb_table[ELGATO_EYETV_SAT], NULL }, .warm_ids = { NULL }, }, { .name = "Elgato EyeTV Sat", - .cold_ids = { &az6027_usb_table[6], NULL }, + .cold_ids = { &az6027_usb_table[ELGATO_EYETV_SAT_V2], NULL }, .warm_ids = { NULL }, }, { .name = "Elgato EyeTV Sat", - .cold_ids = { &az6027_usb_table[7], NULL }, + .cold_ids = { &az6027_usb_table[ELGATO_EYETV_SAT_V3], NULL }, .warm_ids = { NULL }, }, { NULL },
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 8/26 media: cinergyT2-core: use the newer dvb-usb macros for USB device
In reply to Mauro Carvalho ChehabIn order to make the drivers under dvb-usb more homogeneous, use the new macro and an enum with the USB model supported by this driver.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/cinergyT2-core.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/media/usb/dvb-usb/cinergyT2-core.c +7 -3
@@ -193,9 +193,13 @@ static int cinergyt2_usb_probe(struct usb_interface *intf, THIS_MODULE, NULL, adapter_nr); } +enum { +TERRATEC_CINERGY_T2 , +}; +static struct usb_device_id cinergyt2_usb_table[] = { - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_T2 ) }, - {0 } +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_T2 ), + { } };MODULE_DEVICE_TABLE (usb, cinergyt2_usb_table);
@@ -240,7 +244,7 @@ static const struct dvb_usb_device_properties cinergyt2_properties = { .devices = { { .name = "TerraTec/qanu USB2.0 Highspeed DVB-T Receiver", .cold_ids = {NULL}, - .warm_ids = { &cinergyt2_usb_table[0], NULL }, + .warm_ids = { &cinergyt2_usb_table[TERRATEC_CINERGY_T2], NULL }, }, { NULL }, }
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 9/26 media: cxusb: use the newer dvb-usb macros for USB device
In reply to Mauro Carvalho ChehabIn order to make the drivers under dvb-usb more homogeneous, use the new macro.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/cxusb.c | 88 ++++++++----------------------- 1 file changed, 23 insertions(+), 65 deletions(-)
drivers/media/usb/dvb-usb/cxusb.c +23 -65
@@ -1692,72 +1692,30 @@ static void cxusb_disconnect(struct usb_interface *intf)dvb_usb_device_exit (intf); } -static struct usb_device_id cxusb_table[NR__cxusb_table_index +1 ] = { - [MEDION_MD95700 ] = { -USB_DEVICE (USB_VID_MEDION ,USB_PID_MEDION_MD95700 ) - }, - [DVICO_BLUEBIRD_LG064F_COLD ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_LG064F_COLD ) - }, - [DVICO_BLUEBIRD_LG064F_WARM ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_LG064F_WARM ) - }, - [DVICO_BLUEBIRD_DUAL_1_COLD ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD ) - }, - [DVICO_BLUEBIRD_DUAL_1_WARM ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM ) - }, - [DVICO_BLUEBIRD_LGZ201_COLD ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_LGZ201_COLD ) - }, - [DVICO_BLUEBIRD_LGZ201_WARM ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_LGZ201_WARM ) - }, - [DVICO_BLUEBIRD_TH7579_COLD ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_TH7579_COLD ) - }, - [DVICO_BLUEBIRD_TH7579_WARM ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_TH7579_WARM ) - }, - [DIGITALNOW_BLUEBIRD_DUAL_1_COLD ] = { -USB_DEVICE (USB_VID_DVICO , -USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD ) - }, - [DIGITALNOW_BLUEBIRD_DUAL_1_WARM ] = { -USB_DEVICE (USB_VID_DVICO , -USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM ) - }, - [DVICO_BLUEBIRD_DUAL_2_COLD ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD ) - }, - [DVICO_BLUEBIRD_DUAL_2_WARM ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_DUAL_2_WARM ) - }, - [DVICO_BLUEBIRD_DUAL_4 ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_DUAL_4 ) - }, - [DVICO_BLUEBIRD_DVB_T_NANO_2 ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2 ) - }, - [DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM ] = { -USB_DEVICE (USB_VID_DVICO , -USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM ) - }, - [AVERMEDIA_VOLAR_A868R ] = { -USB_DEVICE (USB_VID_AVERMEDIA ,USB_PID_AVERMEDIA_VOLAR_A868R ) - }, - [DVICO_BLUEBIRD_DUAL_4_REV_2 ] = { -USB_DEVICE (USB_VID_DVICO ,USB_PID_DVICO_BLUEBIRD_DUAL_4_REV_2 ) - }, - [CONEXANT_D680_DMB ] = { -USB_DEVICE (USB_VID_CONEXANT ,USB_PID_CONEXANT_D680_DMB ) - }, - [MYGICA_D689 ] = { -USB_DEVICE (USB_VID_CONEXANT ,USB_PID_MYGICA_D689 ) - }, - {}/* Terminating entry */ +static struct usb_device_id cxusb_table[] = { +DVB_USB_DEV (MEDION ,MEDION_MD95700 ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_LG064F_COLD ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_LG064F_WARM ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_DUAL_1_COLD ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_DUAL_1_WARM ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_LGZ201_COLD ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_LGZ201_WARM ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_TH7579_COLD ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_TH7579_WARM ), +DVB_USB_DEV (DVICO ,DIGITALNOW_BLUEBIRD_DUAL_1_COLD ), +DVB_USB_DEV (DVICO ,DIGITALNOW_BLUEBIRD_DUAL_1_WARM ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_DUAL_2_COLD ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_DUAL_2_WARM ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_DUAL_4 ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_DVB_T_NANO_2 ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM ), +DVB_USB_DEV (AVERMEDIA ,AVERMEDIA_VOLAR_A868R ), +DVB_USB_DEV (DVICO ,DVICO_BLUEBIRD_DUAL_4_REV_2 ), +DVB_USB_DEV (CONEXANT ,CONEXANT_D680_DMB ), +DVB_USB_DEV (CONEXANT ,MYGICA_D689 ), + { } }; +MODULE_DEVICE_TABLE (usb, cxusb_table);static struct dvb_usb_device_properties cxusb_medion_properties = {
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 10/26 media: digitv: use the newer dvb-usb macros for USB device
In reply to Mauro Carvalho ChehabIn order to make the drivers under dvb-usb more homogeneous, use the new macro.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/digitv.c | 13 +++++++++---- include/media/dvb-usb-ids.h | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-)
drivers/media/usb/dvb-usb/digitv.c +9 -4
@@ -291,10 +291,15 @@ static int digitv_probe(struct usb_interface *intf,return ret; } -static struct usb_device_id digitv_table [] = { - {USB_DEVICE (USB_VID_ANCHOR ,USB_PID_NEBULA_DIGITV ) }, - { }/* Terminating entry */ +enum { +ANCHOR_NEBULA_DIGITV , }; + +static struct usb_device_id digitv_table[] = { +DVB_USB_DEV (ANCHOR ,ANCHOR_NEBULA_DIGITV ), + { } +}; +MODULE_DEVICE_TABLE (usb, digitv_table);static struct dvb_usb_device_properties digitv_properties = {
@@ -343,7 +348,7 @@ static struct dvb_usb_device_properties digitv_properties = { .num_device_descs = 1, .devices = { {"Nebula Electronics uDigiTV DVB-T USB2.0)" , - { &digitv_table[0], NULL }, + { &digitv_table[ANCHOR_NEBULA_DIGITV], NULL }, { NULL }, }, { NULL },
include/media/dvb-usb-ids.h +1 -1
@@ -104,6 +104,7 @@#define USB_PID_AFATECH_AF9035_9035 0x9035#define USB_PID_ALINK_DTU 0xf170#define USB_PID_AME_DTV5100 0xa232 +#define USB_PID_ANCHOR_NEBULA_DIGITV 0x0201#define USB_PID_ANSONIC_DVBT_USB 0x6000#define USB_PID_ANYSEE 0x861f#define USB_PID_ARTEC_T14BR 0x810f
@@ -301,7 +302,6 @@#define USB_PID_MYGICA_T230C2 0xc68a#define USB_PID_MYGICA_T230C2_LITE 0xc69a#define USB_PID_MYGICA_T230C_LITE 0xc699 -#define USB_PID_NEBULA_DIGITV 0x0201#define USB_PID_NOXON_DAB_STICK 0x00b3#define USB_PID_NOXON_DAB_STICK_REV2 0x00e0#define USB_PID_NOXON_DAB_STICK_REV3 0x00b4
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 11/26 media: dvb-usb: dtt200u: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/dtt200u.c | 56 ++++++++++++++++++----------- include/media/dvb-usb-ids.h | 19 +++++----- 2 files changed, 45 insertions(+), 30 deletions(-)
drivers/media/usb/dvb-usb/dtt200u.c +35 -21
@@ -158,19 +158,33 @@ static int dtt200u_usb_probe(struct usb_interface *intf,return -ENODEV ; } -static struct usb_device_id dtt200u_usb_table [] = { - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_DTT200U_COLD ) }, - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_DTT200U_WARM ) }, - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_WT220U_COLD ) }, - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_WT220U_WARM ) }, - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_WT220U_ZL0353_COLD ) }, - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_WT220U_ZL0353_WARM ) }, - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_WT220U_FC_COLD ) }, - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_WT220U_FC_WARM ) }, - {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_WT220U_ZAP250_COLD ) }, - {USB_DEVICE (USB_VID_MIGLIA ,USB_PID_WT220U_ZAP250_COLD ) }, - {0 }, +enum { +WIDEVIEW_DTT200U_COLD , +WIDEVIEW_DTT200U_WARM , +WIDEVIEW_WT220U_COLD , +WIDEVIEW_WT220U_WARM , +WIDEVIEW_WT220U_ZL0353_COLD , +WIDEVIEW_WT220U_ZL0353_WARM , +WIDEVIEW_WT220U_FC_COLD , +WIDEVIEW_WT220U_FC_WARM , +WIDEVIEW_WT220U_ZAP250_COLD , +MIGLIA_WT220U_ZAP250_COLD , }; + +static struct usb_device_id dtt200u_usb_table[] = { +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_DTT200U_COLD ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_DTT200U_WARM ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_WT220U_COLD ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_WT220U_WARM ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_WT220U_ZL0353_COLD ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_WT220U_ZL0353_WARM ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_WT220U_FC_COLD ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_WT220U_FC_WARM ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_WT220U_ZAP250_COLD ), +DVB_USB_DEV (MIGLIA ,MIGLIA_WT220U_ZAP250_COLD ), + { } +}; +MODULE_DEVICE_TABLE (usb, dtt200u_usb_table);static struct dvb_usb_device_properties dtt200u_properties = {
@@ -218,8 +232,8 @@ static struct dvb_usb_device_properties dtt200u_properties = { .num_device_descs = 1, .devices = { { .name = "WideView/Yuan/Yakumo/Hama/Typhoon DVB-T USB2.0 (WT-200U)", - .cold_ids = { &dtt200u_usb_table[0], NULL }, - .warm_ids = { &dtt200u_usb_table[1], NULL }, + .cold_ids = { &dtt200u_usb_table[WIDEVIEW_DTT200U_COLD], NULL }, + .warm_ids = { &dtt200u_usb_table[WIDEVIEW_DTT200U_WARM], NULL }, }, { NULL }, }
@@ -270,8 +284,8 @@ static struct dvb_usb_device_properties wt220u_properties = { .num_device_descs = 1, .devices = { { .name = "WideView WT-220U PenType Receiver (Typhoon/Freecom)", - .cold_ids = { &dtt200u_usb_table[2], &dtt200u_usb_table[8], NULL }, - .warm_ids = { &dtt200u_usb_table[3], NULL }, + .cold_ids = { &dtt200u_usb_table[WIDEVIEW_WT220U_COLD], &dtt200u_usb_table[WIDEVIEW_WT220U_ZAP250_COLD], NULL }, + .warm_ids = { &dtt200u_usb_table[WIDEVIEW_WT220U_WARM], NULL }, }, { NULL }, }
@@ -322,8 +336,8 @@ static struct dvb_usb_device_properties wt220u_fc_properties = { .num_device_descs = 1, .devices = { { .name = "WideView WT-220U PenType Receiver (Typhoon/Freecom)", - .cold_ids = { &dtt200u_usb_table[6], NULL }, - .warm_ids = { &dtt200u_usb_table[7], NULL }, + .cold_ids = { &dtt200u_usb_table[WIDEVIEW_WT220U_FC_COLD], NULL }, + .warm_ids = { &dtt200u_usb_table[WIDEVIEW_WT220U_FC_WARM], NULL }, }, { NULL }, }
@@ -374,8 +388,8 @@ static struct dvb_usb_device_properties wt220u_zl0353_properties = { .num_device_descs = 1, .devices = { { .name = "WideView WT-220U PenType Receiver (based on ZL353)", - .cold_ids = { &dtt200u_usb_table[4], NULL }, - .warm_ids = { &dtt200u_usb_table[5], NULL }, + .cold_ids = { &dtt200u_usb_table[WIDEVIEW_WT220U_ZL0353_COLD], NULL }, + .warm_ids = { &dtt200u_usb_table[WIDEVIEW_WT220U_ZL0353_WARM], NULL }, }, { NULL }, }
@@ -393,7 +407,7 @@ static struct dvb_usb_device_properties wt220u_miglia_properties = { .num_device_descs = 1, .devices = { { .name = "WideView WT-220U PenType Receiver (Miglia)", - .cold_ids = { &dtt200u_usb_table[9], NULL }, + .cold_ids = { &dtt200u_usb_table[MIGLIA_WT220U_ZAP250_COLD], NULL },/* This device turns into WT220U_ZL0353_WARM when fw has been uploaded */ .warm_ids = { NULL },
include/media/dvb-usb-ids.h +10 -9
@@ -194,8 +194,6 @@#define USB_PID_DNTV_TINYUSB2_WARM 0x3224#define USB_PID_DPOSH_M9206_COLD 0x9206#define USB_PID_DPOSH_M9206_WARM 0xa090 -#define USB_PID_DTT200U_COLD 0x0201 -#define USB_PID_DTT200U_WARM 0x0301#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM 0x5001#define USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD 0xdb50
@@ -290,6 +288,7 @@#define USB_PID_LITEON_DVB_T_COLD 0xf000#define USB_PID_LITEON_DVB_T_WARM 0xf001#define USB_PID_MEDION_MD95700 0x0932 +#define USB_PID_MIGLIA_WT220U_ZAP250_COLD 0x0220#define USB_PID_MSI_DIGIVOX_DUO 0x8801#define USB_PID_MSI_DIGI_VOX_MINI_II 0x1513#define USB_PID_MSI_DIGI_VOX_MINI_III 0x8807
@@ -430,6 +429,15 @@#define USB_PID_UNIWILL_STK7700P 0x6003#define USB_PID_UNK_HYPER_PALTEK_COLD 0x005e#define USB_PID_UNK_HYPER_PALTEK_WARM 0x005f +#define USB_PID_WIDEVIEW_DTT200U_COLD 0x0201 +#define USB_PID_WIDEVIEW_DTT200U_WARM 0x0301 +#define USB_PID_WIDEVIEW_WT220U_COLD 0x0222 +#define USB_PID_WIDEVIEW_WT220U_FC_COLD 0x0225 +#define USB_PID_WIDEVIEW_WT220U_FC_WARM 0x0226 +#define USB_PID_WIDEVIEW_WT220U_WARM 0x0221 +#define USB_PID_WIDEVIEW_WT220U_ZAP250_COLD 0x0220 +#define USB_PID_WIDEVIEW_WT220U_ZL0353_COLD 0x022a +#define USB_PID_WIDEVIEW_WT220U_ZL0353_WARM 0x022b#define USB_PID_WINFAST_DTV2000DS 0x6a04#define USB_PID_WINFAST_DTV2000DS_PLUS 0x6f12#define USB_PID_WINFAST_DTV_DONGLE_COLD 0x6025
@@ -443,13 +451,6 @@#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301#define USB_PID_WINTV_SOLOHD 0x0264#define USB_PID_WINTV_SOLOHD_2 0x8268 -#define USB_PID_WT220U_COLD 0x0222 -#define USB_PID_WT220U_FC_COLD 0x0225 -#define USB_PID_WT220U_FC_WARM 0x0226 -#define USB_PID_WT220U_WARM 0x0221 -#define USB_PID_WT220U_ZAP250_COLD 0x0220 -#define USB_PID_WT220U_ZL0353_COLD 0x022a -#define USB_PID_WT220U_ZL0353_WARM 0x022b#define USB_PID_XBOX_ONE_TUNER 0x02d5#define USB_PID_XTENSIONS_XD_380 0x0381#define USB_PID_YUAN_EC372S 0x1edc
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 12/26 media: dtv5100: use the newer dvb-usb macros for USB device
In reply to Mauro Carvalho ChehabIn order to make the drivers under dvb-usb more homogeneous, use the new macro.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/dtv5100.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
drivers/media/usb/dvb-usb/dtv5100.c +8 -3
@@ -162,10 +162,15 @@ static int dtv5100_probe(struct usb_interface *intf,return 0 ; } +enum { +AME_DTV5100 , +}; +static struct usb_device_id dtv5100_table[] = { - {USB_DEVICE (USB_VID_AME ,USB_PID_AME_DTV5100 ) }, - { }/* Terminating entry */ +DVB_USB_DEV (AME ,AME_DTV5100 ), + { } }; +MODULE_DEVICE_TABLE (usb, dtv5100_table);static struct dvb_usb_device_properties dtv5100_properties = {
@@ -201,7 +206,7 @@ static struct dvb_usb_device_properties dtv5100_properties = { { .name = "AME DTV-5100 USB2.0 DVB-T", .cold_ids = { NULL }, - .warm_ids = { &dtv5100_table[0], NULL }, + .warm_ids = { &dtv5100_table[AME_DTV5100], NULL }, }, } };
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 13/26 media: dw2102: use the newer dvb-usb macros for USB device
In reply to Mauro Carvalho ChehabIn order to make the drivers under dvb-usb more homogeneous, use the new macro, and rename some PIDs.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/dw2102.c | 84 ++++++++++++++---------------- include/media/dvb-usb-ids.h | 12 ++--- 2 files changed, 45 insertions(+), 51 deletions(-)
drivers/media/usb/dvb-usb/dw2102.c +39 -45
@@ -1771,10 +1771,10 @@ enum dw2102_table_entry {PROF_7500 ,GENIATECH_SU3000 ,HAUPPAUGE_MAX_S2 , -TERRATEC_CINERGY_S2 , +TERRATEC_CINERGY_S2_R1 ,TEVII_S480_1 ,TEVII_S480_2 , -X3M_SPC1400HD , +GENIATECH_X3M_SPC1400HD ,TEVII_S421 ,TEVII_S632 , TERRATEC_CINERGY_S2_R2,
@@ -1784,7 +1784,7 @@ enum dw2102_table_entry {TERRATEC_CINERGY_S2_2 ,GOTVIEW_SAT_HD ,GENIATECH_T220 , -TECHNOTREND_S2_4600 , +TECHNOTREND_CONNECT_S2_4600 ,TEVII_S482_1 ,TEVII_S482_2 , TERRATEC_CINERGY_S2_BOX,
@@ -1792,42 +1792,36 @@ enum dw2102_table_entry { };static struct usb_device_id dw2102_table[] = { - [CYPRESS_DW2102 ] = {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW2102 )}, - [CYPRESS_DW2101 ] = {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW2101 )}, - [CYPRESS_DW2104 ] = {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW2104 )}, - [TEVII_S650 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S650 )}, - [TERRATEC_CINERGY_S ] = {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_S )}, - [CYPRESS_DW3101 ] = {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_DW3101 )}, - [TEVII_S630 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S630 )}, - [PROF_1100 ] = {USB_DEVICE (USB_VID_PROF_1 ,USB_PID_PROF_1100 )}, - [TEVII_S660 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S660 )}, - [PROF_7500 ] = {USB_DEVICE (USB_VID_PROF_2 ,USB_PID_PROF_7500 )}, - [GENIATECH_SU3000 ] = {USB_DEVICE (USB_VID_GTEK ,USB_PID_GENIATECH_SU3000 )}, - [HAUPPAUGE_MAX_S2 ] = {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_MAX_S2 )}, - [TERRATEC_CINERGY_S2 ] = {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_S2_R1 )}, - [TEVII_S480_1 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S480_1 )}, - [TEVII_S480_2 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S480_2 )}, - [X3M_SPC1400HD ] = {USB_DEVICE (USB_VID_GTEK ,USB_PID_GENIATECH_X3M_SPC1400HD )}, - [TEVII_S421 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S421 )}, - [TEVII_S632 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S632 )}, - [TERRATEC_CINERGY_S2_R2 ] = {USB_DEVICE (USB_VID_TERRATEC , -USB_PID_TERRATEC_CINERGY_S2_R2 )}, - [TERRATEC_CINERGY_S2_R3 ] = {USB_DEVICE (USB_VID_TERRATEC , -USB_PID_TERRATEC_CINERGY_S2_R3 )}, - [TERRATEC_CINERGY_S2_R4 ] = {USB_DEVICE (USB_VID_TERRATEC , -USB_PID_TERRATEC_CINERGY_S2_R4 )}, - [TERRATEC_CINERGY_S2_1 ] = {USB_DEVICE (USB_VID_TERRATEC_2 , -USB_PID_TERRATEC_CINERGY_S2_1 )}, - [TERRATEC_CINERGY_S2_2 ] = {USB_DEVICE (USB_VID_TERRATEC_2 , -USB_PID_TERRATEC_CINERGY_S2_2 )}, - [GOTVIEW_SAT_HD ] = {USB_DEVICE (USB_VID_GOTVIEW ,USB_PID_GOTVIEW_SAT_HD )}, - [GENIATECH_T220 ] = {USB_DEVICE (USB_VID_GTEK ,USB_PID_GENIATECH_T220 )}, - [TECHNOTREND_S2_4600 ] = {USB_DEVICE (USB_VID_TECHNOTREND , -USB_PID_TECHNOTREND_CONNECT_S2_4600 )}, - [TEVII_S482_1 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TTEVII_S482_1 )}, - [TEVII_S482_2 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TTEVII_S482_2 )}, - [TERRATEC_CINERGY_S2_BOX ] = {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_S2_BOX )}, - [TEVII_S662 ] = {USB_DEVICE (USB_VID_TEVII ,USB_PID_TEVII_S662 )}, +DVB_USB_DEV (CYPRESS ,CYPRESS_DW2102 ), +DVB_USB_DEV (CYPRESS ,CYPRESS_DW2101 ), +DVB_USB_DEV (CYPRESS ,CYPRESS_DW2104 ), +DVB_USB_DEV (TEVII ,TEVII_S650 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_S ), +DVB_USB_DEV (CYPRESS ,CYPRESS_DW3101 ), +DVB_USB_DEV (TEVII ,TEVII_S630 ), +DVB_USB_DEV (PROF_1 ,PROF_1100 ), +DVB_USB_DEV (TEVII ,TEVII_S660 ), +DVB_USB_DEV (PROF_2 ,PROF_7500 ), +DVB_USB_DEV (GTEK ,GENIATECH_SU3000 ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_MAX_S2 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_S2_R1 ), +DVB_USB_DEV (TEVII ,TEVII_S480_1 ), +DVB_USB_DEV (TEVII ,TEVII_S480_2 ), +DVB_USB_DEV (GTEK ,GENIATECH_X3M_SPC1400HD ), +DVB_USB_DEV (TEVII ,TEVII_S421 ), +DVB_USB_DEV (TEVII ,TEVII_S632 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_S2_R2 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_S2_R3 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_S2_R4 ), +DVB_USB_DEV (TERRATEC_2 ,TERRATEC_CINERGY_S2_1 ), +DVB_USB_DEV (TERRATEC_2 ,TERRATEC_CINERGY_S2_2 ), +DVB_USB_DEV (GOTVIEW ,GOTVIEW_SAT_HD ), +DVB_USB_DEV (GTEK ,GENIATECH_T220 ), +DVB_USB_DEV (TECHNOTREND ,TECHNOTREND_CONNECT_S2_4600 ), +DVB_USB_DEV (TEVII ,TEVII_S482_1 ), +DVB_USB_DEV (TEVII ,TEVII_S482_2 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_S2_BOX ), +DVB_USB_DEV (TEVII ,TEVII_S662 ), { } };
@@ -1889,18 +1883,18 @@ static int dw2102_load_firmware(struct usb_device *dev,case USB_PID_TEVII_S650 : dw2104_properties.rc.core.rc_codes =RC_MAP_TEVII_NEC ; fallthrough; -case USB_PID_DW2104 : +case USB_PID_CYPRESS_DW2104 : reset =1 ;dw210x_op_rw (dev,0xc4 ,0x0000 ,0 , &reset,1 ,DW210X_WRITE_MSG ); fallthrough; -case USB_PID_DW3101 : +case USB_PID_CYPRESS_DW3101 : reset =0 ;dw210x_op_rw (dev,0xbf ,0x0040 ,0 , &reset,0 ,DW210X_WRITE_MSG );break ;case USB_PID_TERRATEC_CINERGY_S : -case USB_PID_DW2102 : +case USB_PID_CYPRESS_DW2102 :dw210x_op_rw (dev,0xbf ,0x0040 ,0 , &reset,0 ,DW210X_WRITE_MSG ); dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2,
@@ -2350,11 +2344,11 @@ static struct dvb_usb_device_properties su3000_properties = { { NULL }, }, { "Terratec Cinergy S2 USB HD", - { &dw2102_table[TERRATEC_CINERGY_S2], NULL }, + { &dw2102_table[TERRATEC_CINERGY_S2_R1], NULL }, { NULL }, }, { "X3M TV SPC1400HD PCI", - { &dw2102_table[X3M_SPC1400HD], NULL }, + { &dw2102_table[GENIATECH_X3M_SPC1400HD], NULL }, { NULL }, }, { "Terratec Cinergy S2 USB HD Rev.2",
@@ -2525,7 +2519,7 @@ static struct dvb_usb_device_properties tt_s2_4600_properties = { .num_device_descs = 5, .devices = { {"TechnoTrend TT-connect S2-4600" , - { &dw2102_table[TECHNOTREND_S2_4600], NULL }, + { &dw2102_table[TECHNOTREND_CONNECT_S2_4600], NULL }, { NULL }, }, { "TeVii S482 (tuner 1)",
include/media/dvb-usb-ids.h +6 -6
@@ -160,6 +160,10 @@#define USB_PID_CPYTO_REDI_PC50A 0xa803#define USB_PID_CREATIX_CTX1921 0x1921#define USB_PID_CTVDIGDUAL_V2 0xe410 +#define USB_PID_CYPRESS_DW2101 0x2101 +#define USB_PID_CYPRESS_DW2102 0x2102 +#define USB_PID_CYPRESS_DW2104 0x2104 +#define USB_PID_CYPRESS_DW3101 0x3101#define USB_PID_DELOCK_USB2_DVBT 0xb803#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131#define USB_PID_DIBCOM_HOOK_DEFAULT 0x0064
@@ -211,10 +215,6 @@#define USB_PID_DVICO_BLUEBIRD_LGZ201_WARM 0xdb01#define USB_PID_DVICO_BLUEBIRD_TH7579_COLD 0xdb10#define USB_PID_DVICO_BLUEBIRD_TH7579_WARM 0xdb11 -#define USB_PID_DW2101 0x2101 -#define USB_PID_DW2102 0x2102 -#define USB_PID_DW2104 0x2104 -#define USB_PID_DW3101 0x3101#define USB_PID_E3C_EC168 0x1689#define USB_PID_E3C_EC168_2 0xfffa#define USB_PID_E3C_EC168_3 0xfffb
@@ -394,6 +394,8 @@#define USB_PID_TEVII_S421 0xd421#define USB_PID_TEVII_S480_1 0xd481#define USB_PID_TEVII_S480_2 0xd482 +#define USB_PID_TEVII_S482_1 0xd483 +#define USB_PID_TEVII_S482_2 0xd484#define USB_PID_TEVII_S630 0xd630#define USB_PID_TEVII_S632 0xd632#define USB_PID_TEVII_S650 0xd650
@@ -404,8 +406,6 @@#define USB_PID_TINYTWIN_3 0x9016#define USB_PID_TREKSTOR_DVBT 0x901b#define USB_PID_TREKSTOR_TERRES_2_0 0xC803 -#define USB_PID_TTEVII_S482_1 0xd483 -#define USB_PID_TTEVII_S482_2 0xd484#define USB_PID_TURBOX_DTT_2000 0xd3a4#define USB_PID_TVWAY_PLUS 0x0002#define USB_PID_TWINHAN_VP7020_COLD 0x3203
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 14/26 media: dvb-usb: gp8psk: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/gp8psk.c | 36 +++++++++++++++++++----------- 1 file changed, 23 insertions(+), 13 deletions(-)
drivers/media/usb/dvb-usb/gp8psk.c +23 -13
@@ -310,15 +310,25 @@ static int gp8psk_usb_probe(struct usb_interface *intf,return ret; } -static struct usb_device_id gp8psk_usb_table [] = { - {USB_DEVICE (USB_VID_GENPIX ,USB_PID_GENPIX_8PSK_REV_1_COLD ) }, - {USB_DEVICE (USB_VID_GENPIX ,USB_PID_GENPIX_8PSK_REV_1_WARM ) }, - {USB_DEVICE (USB_VID_GENPIX ,USB_PID_GENPIX_8PSK_REV_2 ) }, - {USB_DEVICE (USB_VID_GENPIX ,USB_PID_GENPIX_SKYWALKER_1 ) }, - {USB_DEVICE (USB_VID_GENPIX ,USB_PID_GENPIX_SKYWALKER_2 ) }, -/* { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_SKYWALKER_CW3K) }, */ - {0 }, +enum { +GENPIX_8PSK_REV_1_COLD , +GENPIX_8PSK_REV_1_WARM , +GENPIX_8PSK_REV_2 , +GENPIX_SKYWALKER_1 , +GENPIX_SKYWALKER_2 , +GENPIX_SKYWALKER_CW3K , }; + +static struct usb_device_id gp8psk_usb_table[] = { +DVB_USB_DEV (GENPIX ,GENPIX_8PSK_REV_1_COLD ), +DVB_USB_DEV (GENPIX ,GENPIX_8PSK_REV_1_WARM ), +DVB_USB_DEV (GENPIX ,GENPIX_8PSK_REV_2 ), +DVB_USB_DEV (GENPIX ,GENPIX_SKYWALKER_1 ), +DVB_USB_DEV (GENPIX ,GENPIX_SKYWALKER_2 ), +DVB_USB_DEV (GENPIX ,GENPIX_SKYWALKER_CW3K ), + { } +}; +MODULE_DEVICE_TABLE (usb, gp8psk_usb_table);static struct dvb_usb_device_properties gp8psk_properties = {
@@ -355,20 +365,20 @@ static struct dvb_usb_device_properties gp8psk_properties = { .num_device_descs = 4, .devices = { { .name = "Genpix 8PSK-to-USB2 Rev.1 DVB-S receiver", - .cold_ids = { &gp8psk_usb_table[0], NULL }, - .warm_ids = { &gp8psk_usb_table[1], NULL }, + .cold_ids = { &gp8psk_usb_table[GENPIX_8PSK_REV_1_COLD], NULL }, + .warm_ids = { &gp8psk_usb_table[GENPIX_8PSK_REV_1_WARM], NULL }, }, { .name = "Genpix 8PSK-to-USB2 Rev.2 DVB-S receiver", .cold_ids = { NULL }, - .warm_ids = { &gp8psk_usb_table[2], NULL }, + .warm_ids = { &gp8psk_usb_table[GENPIX_8PSK_REV_2], NULL }, }, { .name = "Genpix SkyWalker-1 DVB-S receiver", .cold_ids = { NULL }, - .warm_ids = { &gp8psk_usb_table[3], NULL }, + .warm_ids = { &gp8psk_usb_table[GENPIX_SKYWALKER_1], NULL }, }, { .name = "Genpix SkyWalker-2 DVB-S receiver", .cold_ids = { NULL }, - .warm_ids = { &gp8psk_usb_table[4], NULL }, + .warm_ids = { &gp8psk_usb_table[GENPIX_SKYWALKER_2], NULL }, }, { NULL }, }
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 15/26 media: dvb-usb: m920x: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/m920x.c | 51 ++++++++++++++++++------------- include/media/dvb-usb-ids.h | 10 +++--- 2 files changed, 35 insertions(+), 26 deletions(-)
drivers/media/usb/dvb-usb/m920x.c +30 -21
@@ -897,20 +897,29 @@ static int m920x_probe(struct usb_interface *intf,return ret; } -static struct usb_device_id m920x_table [] = { - {USB_DEVICE (USB_VID_MSI ,USB_PID_MSI_MEGASKY580 ) }, - {USB_DEVICE (USB_VID_ANUBIS_ELECTRONIC , -USB_PID_MSI_DIGI_VOX_MINI_II ) }, - {USB_DEVICE (USB_VID_ANUBIS_ELECTRONIC , -USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD ) }, - {USB_DEVICE (USB_VID_ANUBIS_ELECTRONIC , -USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM ) }, - {USB_DEVICE (USB_VID_DPOSH ,USB_PID_DPOSH_M9206_COLD ) }, - {USB_DEVICE (USB_VID_DPOSH ,USB_PID_DPOSH_M9206_WARM ) }, - {USB_DEVICE (USB_VID_VISIONPLUS ,USB_PID_PINNACLE_PCTV310E ) }, - {USB_DEVICE (USB_VID_AZUREWAVE ,USB_PID_TWINHAN_VP7049 ) }, - { }/* Terminating entry */ +enum { +MSI_MEGASKY580 , +ANUBIS_MSI_DIGI_VOX_MINI_II , +ANUBIS_LIFEVIEW_TV_WALKER_TWIN_COLD , +ANUBIS_LIFEVIEW_TV_WALKER_TWIN_WARM , +DPOSH_M9206_COLD , +DPOSH_M9206_WARM , +VISIONPLUS_PINNACLE_PCTV310E , +AZUREWAVE_TWINHAN_VP7049 , }; + +static struct usb_device_id m920x_table[] = { +DVB_USB_DEV (MSI ,MSI_MEGASKY580 ), +DVB_USB_DEV (ANUBIS_ELECTRONIC ,ANUBIS_MSI_DIGI_VOX_MINI_II ), +DVB_USB_DEV (ANUBIS_ELECTRONIC ,ANUBIS_LIFEVIEW_TV_WALKER_TWIN_COLD ), +DVB_USB_DEV (ANUBIS_ELECTRONIC ,ANUBIS_LIFEVIEW_TV_WALKER_TWIN_WARM ), +DVB_USB_DEV (DPOSH ,DPOSH_M9206_COLD ), +DVB_USB_DEV (DPOSH ,DPOSH_M9206_WARM ), +DVB_USB_DEV (VISIONPLUS ,VISIONPLUS_PINNACLE_PCTV310E ), +DVB_USB_DEV (AZUREWAVE ,AZUREWAVE_TWINHAN_VP7049 ), + { } +}; +MODULE_DEVICE_TABLE (usb, m920x_table);static struct dvb_usb_device_properties megasky_properties = {
@@ -962,7 +971,7 @@ static struct dvb_usb_device_properties megasky_properties = { .num_device_descs = 1, .devices = { { "MSI Mega Sky 580 DVB-T USB2.0", - { &m920x_table[0], NULL }, + { &m920x_table[MSI_MEGASKY580], NULL }, { NULL }, } }
@@ -1010,7 +1019,7 @@ static struct dvb_usb_device_properties digivox_mini_ii_properties = { .num_device_descs = 1, .devices = { { "MSI DIGI VOX mini II DVB-T USB2.0", - { &m920x_table[1], NULL }, + { &m920x_table[ANUBIS_MSI_DIGI_VOX_MINI_II], NULL }, { NULL }, }, }
@@ -1097,8 +1106,8 @@ static struct dvb_usb_device_properties tvwalkertwin_properties = { .num_device_descs = 1, .devices = { { .name = "LifeView TV Walker Twin DVB-T USB2.0", - .cold_ids = { &m920x_table[2], NULL }, - .warm_ids = { &m920x_table[3], NULL }, + .cold_ids = { &m920x_table[ANUBIS_LIFEVIEW_TV_WALKER_TWIN_COLD], NULL }, + .warm_ids = { &m920x_table[ANUBIS_LIFEVIEW_TV_WALKER_TWIN_WARM], NULL }, }, } };
@@ -1139,8 +1148,8 @@ static struct dvb_usb_device_properties dposh_properties = { .num_device_descs = 1, .devices = { { .name = "Dposh DVB-T USB2.0", - .cold_ids = { &m920x_table[4], NULL }, - .warm_ids = { &m920x_table[5], NULL }, + .cold_ids = { &m920x_table[DPOSH_M9206_COLD], NULL }, + .warm_ids = { &m920x_table[DPOSH_M9206_WARM], NULL }, }, } };
@@ -1195,7 +1204,7 @@ static struct dvb_usb_device_properties pinnacle_pctv310e_properties = { .num_device_descs = 1, .devices = { { "Pinnacle PCTV 310e", - { &m920x_table[6], NULL }, + { &m920x_table[VISIONPLUS_PINNACLE_PCTV310E], NULL }, { NULL }, } }
@@ -1250,7 +1259,7 @@ static struct dvb_usb_device_properties vp7049_properties = { .num_device_descs = 1, .devices = { { "DTV-DVB UDTT7049", - { &m920x_table[7], NULL }, + { &m920x_table[AZUREWAVE_TWINHAN_VP7049], NULL }, { NULL }, } }
include/media/dvb-usb-ids.h +5 -5
@@ -106,6 +106,9 @@#define USB_PID_AME_DTV5100 0xa232#define USB_PID_ANCHOR_NEBULA_DIGITV 0x0201#define USB_PID_ANSONIC_DVBT_USB 0x6000 +#define USB_PID_ANUBIS_LIFEVIEW_TV_WALKER_TWIN_COLD 0x0514 +#define USB_PID_ANUBIS_LIFEVIEW_TV_WALKER_TWIN_WARM 0x0513 +#define USB_PID_ANUBIS_MSI_DIGI_VOX_MINI_II 0x1513#define USB_PID_ANYSEE 0x861f#define USB_PID_ARTEC_T14BR 0x810f#define USB_PID_ARTEC_T14_COLD 0x810b
@@ -149,6 +152,7 @@#define USB_PID_AZUREWAVE_6007 0x0ccd#define USB_PID_AZUREWAVE_AD_TU700 0x3237#define USB_PID_AZUREWAVE_AZ6027 0x3275 +#define USB_PID_AZUREWAVE_TWINHAN_VP7049 0x3219#define USB_PID_COMPRO_DVBU2000_COLD 0xd000#define USB_PID_COMPRO_DVBU2000_UNK_COLD 0x010c#define USB_PID_COMPRO_DVBU2000_UNK_WARM 0x010d
@@ -283,14 +287,11 @@#define USB_PID_KWORLD_VSTREAM_WARM 0x17df#define USB_PID_KYE_DVB_T_COLD 0x701e#define USB_PID_KYE_DVB_T_WARM 0x701f -#define USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD 0x0514 -#define USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM 0x0513#define USB_PID_LITEON_DVB_T_COLD 0xf000#define USB_PID_LITEON_DVB_T_WARM 0xf001#define USB_PID_MEDION_MD95700 0x0932#define USB_PID_MIGLIA_WT220U_ZAP250_COLD 0x0220#define USB_PID_MSI_DIGIVOX_DUO 0x8801 -#define USB_PID_MSI_DIGI_VOX_MINI_II 0x1513#define USB_PID_MSI_DIGI_VOX_MINI_III 0x8807#define USB_PID_MSI_MEGASKY580 0x5580#define USB_PID_MSI_MEGASKY580_55801 0x5581
@@ -317,7 +318,6 @@#define USB_PID_PINNACLE_EXPRESSCARD_320CX 0x022e#define USB_PID_PINNACLE_PCTV2000E 0x022c#define USB_PID_PINNACLE_PCTV282E 0x0248 -#define USB_PID_PINNACLE_PCTV310E 0x3211#define USB_PID_PINNACLE_PCTV340E 0x023d#define USB_PID_PINNACLE_PCTV340E_SE 0x023e#define USB_PID_PINNACLE_PCTV71E 0x022b
@@ -416,7 +416,6 @@#define USB_PID_TWINHAN_VP7041_WARM 0x3202#define USB_PID_TWINHAN_VP7045_COLD 0x3205#define USB_PID_TWINHAN_VP7045_WARM 0x3206 -#define USB_PID_TWINHAN_VP7049 0x3219#define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107#define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108#define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235
@@ -429,6 +428,7 @@#define USB_PID_UNIWILL_STK7700P 0x6003#define USB_PID_UNK_HYPER_PALTEK_COLD 0x005e#define USB_PID_UNK_HYPER_PALTEK_WARM 0x005f +#define USB_PID_VISIONPLUS_PINNACLE_PCTV310E 0x3211#define USB_PID_WIDEVIEW_DTT200U_COLD 0x0201#define USB_PID_WIDEVIEW_DTT200U_WARM 0x0301#define USB_PID_WIDEVIEW_WT220U_COLD 0x0222
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 16/26 media: dvb-usb: nova-t-usb2: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/nova-t-usb2.c | 18 ++++++++++++------ include/media/dvb-usb-ids.h | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-)
drivers/media/usb/dvb-usb/nova-t-usb2.c +12 -6
@@ -160,11 +160,17 @@ static int nova_t_probe(struct usb_interface *intf, }/* do not change the order of the ID table */ -static struct usb_device_id nova_t_table [] = { -/* 00 */ {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_WINTV_NOVA_T_USB2_COLD ) }, -/* 01 */ {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_WINTV_NOVA_T_USB2_WARM ) }, - { }/* Terminating entry */ +enum { +HAUPPAUGE_WINTV_NOVA_T_USB2_COLD , +HAUPPAUGE_WINTV_NOVA_T_USB2_WARM , }; + +static struct usb_device_id nova_t_table[] = { +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_WINTV_NOVA_T_USB2_COLD ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_WINTV_NOVA_T_USB2_WARM ), + { } +}; +MODULE_DEVICE_TABLE (usb, nova_t_table);static struct dvb_usb_device_properties nova_t_properties = {
@@ -221,8 +227,8 @@ static struct dvb_usb_device_properties nova_t_properties = { .num_device_descs = 1, .devices = { { "Hauppauge WinTV-NOVA-T usb2", - { &nova_t_table[0], NULL }, - { &nova_t_table[1], NULL }, + { &nova_t_table[HAUPPAUGE_WINTV_NOVA_T_USB2_COLD], NULL }, + { &nova_t_table[HAUPPAUGE_WINTV_NOVA_T_USB2_WARM], NULL }, }, { NULL }, }
include/media/dvb-usb-ids.h +2 -2
@@ -267,6 +267,8 @@#define USB_PID_HAUPPAUGE_NOVA_T_STICK_3 0x7070#define USB_PID_HAUPPAUGE_TIGER_ATSC 0xb200#define USB_PID_HAUPPAUGE_TIGER_ATSC_B210 0xb210 +#define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_COLD 0x9300 +#define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_WARM 0x9301#define USB_PID_INTEL_CE9500 0x9500#define USB_PID_ITETECH_IT9135 0x9135#define USB_PID_ITETECH_IT9135_9005 0x9005
@@ -447,8 +449,6 @@#define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00#define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01#define USB_PID_WINFAST_DTV_DONGLE_WARM 0x6026 -#define USB_PID_WINTV_NOVA_T_USB2_COLD 0x9300 -#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301#define USB_PID_WINTV_SOLOHD 0x0264#define USB_PID_WINTV_SOLOHD_2 0x8268#define USB_PID_XBOX_ONE_TUNER 0x02d5
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 17/26 media: dvb-usb: opera1: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/opera1.c | 15 ++++++++++----- include/media/dvb-usb-ids.h | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-)
drivers/media/usb/dvb-usb/opera1.c +10 -5
@@ -425,10 +425,15 @@ static int opera1_rc_query(struct dvb_usb_device *dev, u32 * event, int *state)return 0 ; } +enum { +CYPRESS_OPERA1_COLD , +OPERA1_WARM , +}; +static struct usb_device_id opera1_table[] = { - {USB_DEVICE (USB_VID_CYPRESS ,USB_PID_OPERA1_COLD )}, - {USB_DEVICE (USB_VID_OPERA1 ,USB_PID_OPERA1_WARM )}, - {} +DVB_USB_DEV (CYPRESS ,CYPRESS_OPERA1_COLD ), +DVB_USB_DEV (OPERA1 ,OPERA1_WARM ), + { } };MODULE_DEVICE_TABLE (usb, opera1_table);
@@ -540,8 +545,8 @@ static struct dvb_usb_device_properties opera1_properties = { .num_device_descs = 1, .devices = { {"Opera1 DVB-S USB2.0", - {&opera1_table[0], NULL}, - {&opera1_table[1], NULL}, + {&opera1_table[CYPRESS_OPERA1_COLD], NULL}, + {&opera1_table[OPERA1_WARM], NULL}, }, } };
include/media/dvb-usb-ids.h +1 -1
@@ -168,6 +168,7 @@#define USB_PID_CYPRESS_DW2102 0x2102#define USB_PID_CYPRESS_DW2104 0x2104#define USB_PID_CYPRESS_DW3101 0x3101 +#define USB_PID_CYPRESS_OPERA1_COLD 0x2830#define USB_PID_DELOCK_USB2_DVBT 0xb803#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131#define USB_PID_DIBCOM_HOOK_DEFAULT 0x0064
@@ -307,7 +308,6 @@#define USB_PID_NOXON_DAB_STICK 0x00b3#define USB_PID_NOXON_DAB_STICK_REV2 0x00e0#define USB_PID_NOXON_DAB_STICK_REV3 0x00b4 -#define USB_PID_OPERA1_COLD 0x2830#define USB_PID_OPERA1_WARM 0x3829#define USB_PID_PCTV_2002E 0x025c#define USB_PID_PCTV_2002E_SE 0x025d
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 18/26 media: dvb-usb: pctv452e: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/pctv452e.c | 22 ++++++++++++++-------- include/media/dvb-usb-ids.h | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-)
drivers/media/usb/dvb-usb/pctv452e.c +14 -8
@@ -951,13 +951,19 @@ static int pctv452e_tuner_attach(struct dvb_usb_adapter *a)return 0 ; } +enum { +PINNACLE_PCTV_452E , +TECHNOTREND_CONNECT_S2_3600 , +TECHNOTREND_CONNECT_S2_3650_CI , +}; +static struct usb_device_id pctv452e_usb_table[] = { - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PCTV_452E )}, - {USB_DEVICE (USB_VID_TECHNOTREND ,USB_PID_TECHNOTREND_CONNECT_S2_3600 )}, - {USB_DEVICE (USB_VID_TECHNOTREND , -USB_PID_TECHNOTREND_CONNECT_S2_3650_CI )}, - {} +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV_452E ), +DVB_USB_DEV (TECHNOTREND ,TECHNOTREND_CONNECT_S2_3600 ), +DVB_USB_DEV (TECHNOTREND ,TECHNOTREND_CONNECT_S2_3650_CI ), + { } }; +MODULE_DEVICE_TABLE (usb, pctv452e_usb_table);static struct dvb_usb_device_properties pctv452e_properties = {
@@ -1006,7 +1012,7 @@ static struct dvb_usb_device_properties pctv452e_properties = { .devices = { { .name = "PCTV HDTV USB", .cold_ids = { NULL, NULL }, /* this is a warm only device */ - .warm_ids = { &pctv452e_usb_table[0], NULL } + .warm_ids = { &pctv452e_usb_table[PINNACLE_PCTV_452E], NULL } }, { NULL }, }
@@ -1060,11 +1066,11 @@ static struct dvb_usb_device_properties tt_connect_s2_3600_properties = { .devices = { { .name = "Technotrend TT Connect S2-3600", .cold_ids = { NULL, NULL }, /* this is a warm only device */ - .warm_ids = { &pctv452e_usb_table[1], NULL } + .warm_ids = { &pctv452e_usb_table[TECHNOTREND_CONNECT_S2_3600], NULL } }, { .name = "Technotrend TT Connect S2-3650-CI", .cold_ids = { NULL, NULL }, - .warm_ids = { &pctv452e_usb_table[2], NULL } + .warm_ids = { &pctv452e_usb_table[TECHNOTREND_CONNECT_S2_3650_CI], NULL } }, { NULL }, }
include/media/dvb-usb-ids.h +1 -1
@@ -314,7 +314,6 @@#define USB_PID_PCTV_200E 0x020e#define USB_PID_PCTV_400E 0x020f#define USB_PID_PCTV_450E 0x0222 -#define USB_PID_PCTV_452E 0x021f#define USB_PID_PCTV_78E 0x025a#define USB_PID_PCTV_79E 0x0262#define USB_PID_PINNACLE_EXPRESSCARD_320CX 0x022e
@@ -330,6 +329,7 @@#define USB_PID_PINNACLE_PCTV74E 0x0246#define USB_PID_PINNACLE_PCTV801E 0x023a#define USB_PID_PINNACLE_PCTV801E_SE 0x023b +#define USB_PID_PINNACLE_PCTV_452E 0x021f#define USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T 0x0229#define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228#define USB_PID_PIXELVIEW_SBTVD 0x5010
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 19/26 media: technisat-usb2: use the newer dvb-usb macros for USB device
In reply to Mauro Carvalho ChehabIn order to make the drivers under dvb-usb more homogeneous, use the new macro.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/technisat-usb2.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
drivers/media/usb/dvb-usb/technisat-usb2.c +8 -3
@@ -689,10 +689,15 @@ static int technisat_usb2_rc_query(struct dvb_usb_device *d) }/* DVB-USB and USB stuff follows */ +enum { +TECHNISAT_USB2_DVB_S2 , +}; +static struct usb_device_id technisat_usb2_id_table[] = { - {USB_DEVICE (USB_VID_TECHNISAT ,USB_PID_TECHNISAT_USB2_DVB_S2 ) }, - {0 }/* Terminating entry */ +DVB_USB_DEV (TECHNISAT ,TECHNISAT_USB2_DVB_S2 ), + { } }; +MODULE_DEVICE_TABLE (usb, technisat_usb2_id_table);/* device description */
@@ -738,7 +743,7 @@ static struct dvb_usb_device_properties technisat_usb2_devices = { .num_device_descs = 1, .devices = { { "Technisat SkyStar USB HD (DVB-S/S2)", - { &technisat_usb2_id_table[0], NULL }, + { &technisat_usb2_id_table[TECHNISAT_USB2_DVB_S2], NULL }, { NULL }, }, },
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 20/26 media: dvb-usb: ttusb2: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/ttusb2.c | 36 +++++++++++++++++------------- include/media/dvb-usb-ids.h | 4 ++-- 2 files changed, 23 insertions(+), 17 deletions(-)
drivers/media/usb/dvb-usb/ttusb2.c +21 -15
@@ -630,17 +630,23 @@ static int ttusb2_probe(struct usb_interface *intf,return -ENODEV ; } -static struct usb_device_id ttusb2_table [] = { - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PCTV_400E ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PCTV_450E ) }, - {USB_DEVICE (USB_VID_TECHNOTREND , -USB_PID_TECHNOTREND_CONNECT_S2400 ) }, - {USB_DEVICE (USB_VID_TECHNOTREND , -USB_PID_TECHNOTREND_CONNECT_CT3650 ) }, - {USB_DEVICE (USB_VID_TECHNOTREND , -USB_PID_TECHNOTREND_CONNECT_S2400_8KEEPROM ) }, - {}/* Terminating entry */ +enum { +PINNACLE_PCTV_400E , +PINNACLE_PCTV_450E , +TECHNOTREND_CONNECT_S2400 , +TECHNOTREND_CONNECT_CT3650 , +TECHNOTREND_CONNECT_S2400_8KEEPROM , }; + +static struct usb_device_id ttusb2_table[] = { +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV_400E ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV_450E ), +DVB_USB_DEV (TECHNOTREND ,TECHNOTREND_CONNECT_S2400 ), +DVB_USB_DEV (TECHNOTREND ,TECHNOTREND_CONNECT_CT3650 ), +DVB_USB_DEV (TECHNOTREND ,TECHNOTREND_CONNECT_S2400_8KEEPROM ), + { } +}; +MODULE_DEVICE_TABLE (usb, ttusb2_table);static struct dvb_usb_device_properties ttusb2_properties = {
@@ -688,11 +694,11 @@ static struct dvb_usb_device_properties ttusb2_properties = { .num_device_descs = 2, .devices = { { "Pinnacle 400e DVB-S USB2.0", - { &ttusb2_table[0], NULL }, + { &ttusb2_table[PINNACLE_PCTV_400E], NULL }, { NULL }, }, { "Pinnacle 450e DVB-S USB2.0", - { &ttusb2_table[1], NULL }, + { &ttusb2_table[PINNACLE_PCTV_450E], NULL }, { NULL }, }, }
@@ -743,11 +749,11 @@ static struct dvb_usb_device_properties ttusb2_properties_s2400 = { .num_device_descs = 2, .devices = { { "Technotrend TT-connect S-2400", - { &ttusb2_table[2], NULL }, + { &ttusb2_table[TECHNOTREND_CONNECT_S2400], NULL }, { NULL }, }, { "Technotrend TT-connect S-2400 (8kB EEPROM)", - { &ttusb2_table[4], NULL }, + { &ttusb2_table[TECHNOTREND_CONNECT_S2400_8KEEPROM], NULL }, { NULL }, }, }
@@ -823,7 +829,7 @@ static struct dvb_usb_device_properties ttusb2_properties_ct3650 = { .num_device_descs = 1, .devices = { { "Technotrend TT-connect CT-3650", - .warm_ids = { &ttusb2_table[3], NULL }, + .warm_ids = { &ttusb2_table[TECHNOTREND_CONNECT_CT3650], NULL }, }, } };
include/media/dvb-usb-ids.h +2 -2
@@ -312,8 +312,6 @@#define USB_PID_PCTV_2002E 0x025c#define USB_PID_PCTV_2002E_SE 0x025d#define USB_PID_PCTV_200E 0x020e -#define USB_PID_PCTV_400E 0x020f -#define USB_PID_PCTV_450E 0x0222#define USB_PID_PCTV_78E 0x025a#define USB_PID_PCTV_79E 0x0262#define USB_PID_PINNACLE_EXPRESSCARD_320CX 0x022e
@@ -329,6 +327,8 @@#define USB_PID_PINNACLE_PCTV74E 0x0246#define USB_PID_PINNACLE_PCTV801E 0x023a#define USB_PID_PINNACLE_PCTV801E_SE 0x023b +#define USB_PID_PINNACLE_PCTV_400E 0x020f +#define USB_PID_PINNACLE_PCTV_450E 0x0222#define USB_PID_PINNACLE_PCTV_452E 0x021f#define USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T 0x0229#define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 21/26 media: dvb-usb: umt-010: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/umt-010.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-)
drivers/media/usb/dvb-usb/umt-010.c +12 -6
@@ -81,11 +81,17 @@ static int umt_probe(struct usb_interface *intf, }/* do not change the order of the ID table */ -static struct usb_device_id umt_table [] = { -/* 00 */ {USB_DEVICE (USB_VID_HANFTEK ,USB_PID_HANFTEK_UMT_010_COLD ) }, -/* 01 */ {USB_DEVICE (USB_VID_HANFTEK ,USB_PID_HANFTEK_UMT_010_WARM ) }, - { }/* Terminating entry */ +enum { +HANFTEK_UMT_010_COLD , +HANFTEK_UMT_010_WARM , }; + +static struct usb_device_id umt_table[] = { +DVB_USB_DEV (HANFTEK ,HANFTEK_UMT_010_COLD ), +DVB_USB_DEV (HANFTEK ,HANFTEK_UMT_010_WARM ), + { } +}; +MODULE_DEVICE_TABLE (usb, umt_table);static struct dvb_usb_device_properties umt_properties = {
@@ -127,8 +133,8 @@ static struct dvb_usb_device_properties umt_properties = { .num_device_descs = 1, .devices = { { "Hanftek UMT-010 DVB-T USB2.0", - { &umt_table[0], NULL }, - { &umt_table[1], NULL }, + { &umt_table[HANFTEK_UMT_010_COLD], NULL }, + { &umt_table[HANFTEK_UMT_010_WARM], NULL }, }, } };
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 22/26 media: dvb-usb: vp702x: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/vp702x.c | 23 +++++++++++++++-------- include/media/dvb-usb-ids.h | 6 +++--- 2 files changed, 18 insertions(+), 11 deletions(-)
drivers/media/usb/dvb-usb/vp702x.c +15 -8
@@ -369,12 +369,19 @@ static void vp702x_usb_disconnect(struct usb_interface *intf)dvb_usb_device_exit (intf); } -static struct usb_device_id vp702x_usb_table [] = { - {USB_DEVICE (USB_VID_VISIONPLUS ,USB_PID_TWINHAN_VP7021_COLD ) }, -// { USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_TWINHAN_VP7020_COLD) }, -// { USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_TWINHAN_VP7020_WARM) }, - {0 }, +enum { +VISIONPLUS_VP7021_COLD , +VISIONPLUS_VP7020_COLD , +VISIONPLUS_VP7020_WARM , }; + +static struct usb_device_id vp702x_usb_table[] = { +DVB_USB_DEV (VISIONPLUS ,VISIONPLUS_VP7021_COLD ), +// DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7020_COLD), +// DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7020_WARM), + { } +}; +MODULE_DEVICE_TABLE (usb, vp702x_usb_table);static struct dvb_usb_device_properties vp702x_properties = {
@@ -421,12 +428,12 @@ static struct dvb_usb_device_properties vp702x_properties = { .num_device_descs = 1, .devices = { { .name = "TwinhanDTV StarBox DVB-S USB2.0 (VP7021)", - .cold_ids = { &vp702x_usb_table[0], NULL }, + .cold_ids = { &vp702x_usb_table[VISIONPLUS_VP7021_COLD], NULL }, .warm_ids = { NULL }, }, /* { .name = "TwinhanDTV StarBox DVB-S USB2.0 (VP7020)", - .cold_ids = { &vp702x_usb_table[1], NULL }, - .warm_ids = { &vp702x_usb_table[2], NULL }, + .cold_ids = { &vp702x_usb_table[VISIONPLUS_VP7020_COLD], NULL }, + .warm_ids = { &vp702x_usb_table[VISIONPLUS_VP7020_WARM], NULL }, }, */ { NULL }, }
include/media/dvb-usb-ids.h +3 -3
@@ -410,9 +410,6 @@#define USB_PID_TREKSTOR_TERRES_2_0 0xC803#define USB_PID_TURBOX_DTT_2000 0xd3a4#define USB_PID_TVWAY_PLUS 0x0002 -#define USB_PID_TWINHAN_VP7020_COLD 0x3203 -#define USB_PID_TWINHAN_VP7020_WARM 0x3204 -#define USB_PID_TWINHAN_VP7021_COLD 0x3207#define USB_PID_TWINHAN_VP7021_WARM 0x3208#define USB_PID_TWINHAN_VP7041_COLD 0x3201#define USB_PID_TWINHAN_VP7041_WARM 0x3202
@@ -431,6 +428,9 @@#define USB_PID_UNK_HYPER_PALTEK_COLD 0x005e#define USB_PID_UNK_HYPER_PALTEK_WARM 0x005f#define USB_PID_VISIONPLUS_PINNACLE_PCTV310E 0x3211 +#define USB_PID_VISIONPLUS_VP7020_COLD 0x3203 +#define USB_PID_VISIONPLUS_VP7020_WARM 0x3204 +#define USB_PID_VISIONPLUS_VP7021_COLD 0x3207#define USB_PID_WIDEVIEW_DTT200U_COLD 0x0201#define USB_PID_WIDEVIEW_DTT200U_WARM 0x0301#define USB_PID_WIDEVIEW_WT220U_COLD 0x0222
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 23/26 media: dvb-usb: vp7045: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/vp7045.c | 28 ++++++++++++++++++---------- include/media/dvb-usb-ids.h | 8 ++++---- 2 files changed, 22 insertions(+), 14 deletions(-)
drivers/media/usb/dvb-usb/vp7045.c +18 -10
@@ -172,13 +172,21 @@ static int vp7045_usb_probe(struct usb_interface *intf, THIS_MODULE, NULL, adapter_nr); } -static struct usb_device_id vp7045_usb_table [] = { - {USB_DEVICE (USB_VID_VISIONPLUS ,USB_PID_TWINHAN_VP7045_COLD ) }, - {USB_DEVICE (USB_VID_VISIONPLUS ,USB_PID_TWINHAN_VP7045_WARM ) }, - {USB_DEVICE (USB_VID_VISIONPLUS ,USB_PID_DNTV_TINYUSB2_COLD ) }, - {USB_DEVICE (USB_VID_VISIONPLUS ,USB_PID_DNTV_TINYUSB2_WARM ) }, - {0 }, +enum { +VISIONPLUS_VP7045_COLD , +VISIONPLUS_VP7045_WARM , +VISIONPLUS_TINYUSB2_COLD , +VISIONPLUS_TINYUSB2_WARM , }; + +static struct usb_device_id vp7045_usb_table[] = { +DVB_USB_DEV (VISIONPLUS ,VISIONPLUS_VP7045_COLD ), +DVB_USB_DEV (VISIONPLUS ,VISIONPLUS_VP7045_WARM ), +DVB_USB_DEV (VISIONPLUS ,VISIONPLUS_TINYUSB2_COLD ), +DVB_USB_DEV (VISIONPLUS ,VISIONPLUS_TINYUSB2_WARM ), + { } +}; +MODULE_DEVICE_TABLE (usb, vp7045_usb_table);static struct dvb_usb_device_properties vp7045_properties = {
@@ -221,12 +229,12 @@ static struct dvb_usb_device_properties vp7045_properties = { .num_device_descs = 2, .devices = { { .name = "Twinhan USB2.0 DVB-T receiver (TwinhanDTV Alpha/MagicBox II)", - .cold_ids = { &vp7045_usb_table[0], NULL }, - .warm_ids = { &vp7045_usb_table[1], NULL }, + .cold_ids = { &vp7045_usb_table[VISIONPLUS_VP7045_COLD], NULL }, + .warm_ids = { &vp7045_usb_table[VISIONPLUS_VP7045_WARM], NULL }, }, { .name = "DigitalNow TinyUSB 2 DVB-t Receiver", - .cold_ids = { &vp7045_usb_table[2], NULL }, - .warm_ids = { &vp7045_usb_table[3], NULL }, + .cold_ids = { &vp7045_usb_table[VISIONPLUS_TINYUSB2_COLD], NULL }, + .warm_ids = { &vp7045_usb_table[VISIONPLUS_TINYUSB2_WARM], NULL }, }, { NULL }, }
include/media/dvb-usb-ids.h +4 -4
@@ -199,8 +199,6 @@#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM 0xdb55#define USB_PID_DIGIVOX_MINI_SL_COLD 0xe360#define USB_PID_DIGIVOX_MINI_SL_WARM 0xe361 -#define USB_PID_DNTV_TINYUSB2_COLD 0x3223 -#define USB_PID_DNTV_TINYUSB2_WARM 0x3224#define USB_PID_DPOSH_M9206_COLD 0x9206#define USB_PID_DPOSH_M9206_WARM 0xa090#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000
@@ -413,8 +411,6 @@#define USB_PID_TWINHAN_VP7021_WARM 0x3208#define USB_PID_TWINHAN_VP7041_COLD 0x3201#define USB_PID_TWINHAN_VP7041_WARM 0x3202 -#define USB_PID_TWINHAN_VP7045_COLD 0x3205 -#define USB_PID_TWINHAN_VP7045_WARM 0x3206#define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107#define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108#define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235
@@ -428,9 +424,13 @@#define USB_PID_UNK_HYPER_PALTEK_COLD 0x005e#define USB_PID_UNK_HYPER_PALTEK_WARM 0x005f#define USB_PID_VISIONPLUS_PINNACLE_PCTV310E 0x3211 +#define USB_PID_VISIONPLUS_TINYUSB2_COLD 0x3223 +#define USB_PID_VISIONPLUS_TINYUSB2_WARM 0x3224#define USB_PID_VISIONPLUS_VP7020_COLD 0x3203#define USB_PID_VISIONPLUS_VP7020_WARM 0x3204#define USB_PID_VISIONPLUS_VP7021_COLD 0x3207 +#define USB_PID_VISIONPLUS_VP7045_COLD 0x3205 +#define USB_PID_VISIONPLUS_VP7045_WARM 0x3206#define USB_PID_WIDEVIEW_DTT200U_COLD 0x0201#define USB_PID_WIDEVIEW_DTT200U_WARM 0x0301#define USB_PID_WIDEVIEW_WT220U_COLD 0x0222
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 24/26 media: dvb-usb: dibusb-mb: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/dibusb-mb.c | 165 +++++++++++++++----------- include/media/dvb-usb-ids.h | 11 +- 2 files changed, 101 insertions(+), 75 deletions(-)
drivers/media/usb/dvb-usb/dibusb-mb.c +93 -72
@@ -121,56 +121,77 @@ static int dibusb_probe(struct usb_interface *intf, }/* do not change the order of the ID table */ -static struct usb_device_id dibusb_dib3000mb_table [] = { -/* 00 */ {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_AVERMEDIA_DVBT_USB_COLD ) }, -/* 01 */ {USB_DEVICE (USB_VID_WIDEVIEW ,USB_PID_AVERMEDIA_DVBT_USB_WARM ) }, -/* 02 */ {USB_DEVICE (USB_VID_COMPRO ,USB_PID_COMPRO_DVBU2000_COLD ) }, -/* 03 */ {USB_DEVICE (USB_VID_COMPRO ,USB_PID_COMPRO_DVBU2000_WARM ) }, -/* 04 */ {USB_DEVICE (USB_VID_COMPRO_UNK ,USB_PID_COMPRO_DVBU2000_UNK_COLD ) }, -/* 05 */ {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_MOD3000_COLD ) }, -/* 06 */ {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_MOD3000_WARM ) }, -/* 07 */ {USB_DEVICE (USB_VID_EMPIA ,USB_PID_KWORLD_VSTREAM_COLD ) }, -/* 08 */ {USB_DEVICE (USB_VID_EMPIA ,USB_PID_KWORLD_VSTREAM_WARM ) }, -/* 09 */ {USB_DEVICE (USB_VID_GRANDTEC ,USB_PID_GRANDTEC_DVBT_USB_COLD ) }, -/* 10 */ {USB_DEVICE (USB_VID_GRANDTEC ,USB_PID_GRANDTEC_DVBT_USB_WARM ) }, -/* 11 */ {USB_DEVICE (USB_VID_GRANDTEC ,USB_PID_DIBCOM_MOD3000_COLD ) }, -/* 12 */ {USB_DEVICE (USB_VID_GRANDTEC ,USB_PID_DIBCOM_MOD3000_WARM ) }, -/* 13 */ {USB_DEVICE (USB_VID_HYPER_PALTEK ,USB_PID_UNK_HYPER_PALTEK_COLD ) }, -/* 14 */ {USB_DEVICE (USB_VID_HYPER_PALTEK ,USB_PID_UNK_HYPER_PALTEK_WARM ) }, -/* 15 */ {USB_DEVICE (USB_VID_VISIONPLUS ,USB_PID_TWINHAN_VP7041_COLD ) }, -/* 16 */ {USB_DEVICE (USB_VID_VISIONPLUS ,USB_PID_TWINHAN_VP7041_WARM ) }, -/* 17 */ {USB_DEVICE (USB_VID_TWINHAN ,USB_PID_TWINHAN_VP7041_COLD ) }, -/* 18 */ {USB_DEVICE (USB_VID_TWINHAN ,USB_PID_TWINHAN_VP7041_WARM ) }, -/* 19 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ULTIMA_TVBOX_COLD ) }, -/* 20 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ULTIMA_TVBOX_WARM ) }, -/* 21 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ULTIMA_TVBOX_AN2235_COLD ) }, -/* 22 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ULTIMA_TVBOX_AN2235_WARM ) }, -/* 23 */ {USB_DEVICE (USB_VID_ADSTECH ,USB_PID_ADSTECH_USB2_COLD ) }, - -/* device ID with default DIBUSB2_0-firmware and with the hacked firmware */ -/* 24 */ {USB_DEVICE (USB_VID_ADSTECH ,USB_PID_ADSTECH_USB2_WARM ) }, -/* 25 */ {USB_DEVICE (USB_VID_KYE ,USB_PID_KYE_DVB_T_COLD ) }, -/* 26 */ {USB_DEVICE (USB_VID_KYE ,USB_PID_KYE_DVB_T_WARM ) }, - -/* 27 */ {USB_DEVICE (USB_VID_KWORLD ,USB_PID_KWORLD_VSTREAM_COLD ) }, - -/* 28 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ULTIMA_TVBOX_USB2_COLD ) }, -/* 29 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ULTIMA_TVBOX_USB2_WARM ) }, - -/* -* XXX: As Artec just 'forgot' to program the EEPROM on some Artec T1 devices -* we don't catch these faulty IDs (namely 'Cypress FX1 USB controller') that -* have been left on the device. If you don't have such a device but an Artec -* device that's supposed to work with this driver but is not detected by it, -* free to enable CONFIG_DVB_USB_DIBUSB_MB_FAULTY via your kernel config. -*/ +enum { +WIDEVIEW_DVBT_USB_COLD , +WIDEVIEW_DVBT_USB_WARM , +COMPRO_DVBU2000_COLD , +COMPRO_DVBU2000_WARM , +COMPRO_DVBU2000_UNK_COLD , +DIBCOM_MOD3000_COLD , +DIBCOM_MOD3000_WARM , +EMPIA_VSTREAM_COLD , +EMPIA_VSTREAM_WARM , +GRANDTEC_DVBT_USB_COLD , +GRANDTEC_DVBT_USB_WARM , +GRANDTEC_MOD3000_COLD , +GRANDTEC_MOD3000_WARM , +UNK_HYPER_PALTEK_COLD , +UNK_HYPER_PALTEK_WARM , +VISIONPLUS_VP7041_COLD , +VISIONPLUS_VP7041_WARM , +TWINHAN_VP7041_COLD , +TWINHAN_VP7041_WARM , +ULTIMA_TVBOX_COLD , +ULTIMA_TVBOX_WARM , +ULTIMA_TVBOX_AN2235_COLD , +ULTIMA_TVBOX_AN2235_WARM , +ADSTECH_USB2_COLD , +ADSTECH_USB2_WARM , +KYE_DVB_T_COLD , +KYE_DVB_T_WARM , +KWORLD_VSTREAM_COLD , +ULTIMA_TVBOX_USB2_COLD , +ULTIMA_TVBOX_USB2_WARM , +ULTIMA_TVBOX_ANCHOR_COLD , +}; +static struct usb_device_id dibusb_dib3000mb_table[] = { +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_DVBT_USB_COLD ), +DVB_USB_DEV (WIDEVIEW ,WIDEVIEW_DVBT_USB_WARM ), +DVB_USB_DEV (COMPRO ,COMPRO_DVBU2000_COLD ), +DVB_USB_DEV (COMPRO ,COMPRO_DVBU2000_WARM ), +DVB_USB_DEV (COMPRO_UNK ,COMPRO_DVBU2000_UNK_COLD ), +DVB_USB_DEV (DIBCOM ,DIBCOM_MOD3000_COLD ), +DVB_USB_DEV (DIBCOM ,DIBCOM_MOD3000_WARM ), +DVB_USB_DEV (EMPIA ,EMPIA_VSTREAM_COLD ), +DVB_USB_DEV (EMPIA ,EMPIA_VSTREAM_WARM ), +DVB_USB_DEV (GRANDTEC ,GRANDTEC_DVBT_USB_COLD ), +DVB_USB_DEV (GRANDTEC ,GRANDTEC_DVBT_USB_WARM ), +DVB_USB_DEV (GRANDTEC ,GRANDTEC_MOD3000_COLD ), +DVB_USB_DEV (GRANDTEC ,GRANDTEC_MOD3000_WARM ), +DVB_USB_DEV (HYPER_PALTEK ,UNK_HYPER_PALTEK_COLD ), +DVB_USB_DEV (HYPER_PALTEK ,UNK_HYPER_PALTEK_WARM ), +DVB_USB_DEV (VISIONPLUS ,VISIONPLUS_VP7041_COLD ), +DVB_USB_DEV (VISIONPLUS ,VISIONPLUS_VP7041_WARM ), +DVB_USB_DEV (TWINHAN ,TWINHAN_VP7041_COLD ), +DVB_USB_DEV (TWINHAN ,TWINHAN_VP7041_WARM ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_TVBOX_COLD ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_TVBOX_WARM ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_TVBOX_AN2235_COLD ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_TVBOX_AN2235_WARM ), +DVB_USB_DEV (ADSTECH ,ADSTECH_USB2_COLD ), +DVB_USB_DEV (ADSTECH ,ADSTECH_USB2_WARM ), +DVB_USB_DEV (KYE ,KYE_DVB_T_COLD ), +DVB_USB_DEV (KYE ,KYE_DVB_T_WARM ), +DVB_USB_DEV (KWORLD ,KWORLD_VSTREAM_COLD ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_TVBOX_USB2_COLD ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_TVBOX_USB2_WARM ), #ifdef CONFIG_DVB_USB_DIBUSB_MB_FAULTY -/* 30 */ {USB_DEVICE (USB_VID_ANCHOR ,USB_PID_ULTIMA_TVBOX_ANCHOR_COLD ) }, +DVB_USB_DEV (ANCHOR ,ULTIMA_TVBOX_ANCHOR_COLD ), #endif - - { }/* Terminating entry */ + { } }; +MODULE_DEVICE_TABLE (usb, dibusb_dib3000mb_table);static struct dvb_usb_device_properties dibusb1_1_properties = {
@@ -226,40 +247,40 @@ static struct dvb_usb_device_properties dibusb1_1_properties = { .num_device_descs = 9, .devices = { { "AVerMedia AverTV DVBT USB1.1", - { &dibusb_dib3000mb_table[0], NULL }, - { &dibusb_dib3000mb_table[1], NULL }, + { &dibusb_dib3000mb_table[WIDEVIEW_DVBT_USB_COLD], NULL }, + { &dibusb_dib3000mb_table[WIDEVIEW_DVBT_USB_WARM], NULL }, }, { "Compro Videomate DVB-U2000 - DVB-T USB1.1 (please confirm to linux-dvb)", - { &dibusb_dib3000mb_table[2], &dibusb_dib3000mb_table[4], NULL}, - { &dibusb_dib3000mb_table[3], NULL }, + { &dibusb_dib3000mb_table[COMPRO_DVBU2000_COLD], &dibusb_dib3000mb_table[COMPRO_DVBU2000_UNK_COLD], NULL}, + { &dibusb_dib3000mb_table[COMPRO_DVBU2000_WARM], NULL }, }, { "DiBcom USB1.1 DVB-T reference design (MOD3000)", - { &dibusb_dib3000mb_table[5], NULL }, - { &dibusb_dib3000mb_table[6], NULL }, + { &dibusb_dib3000mb_table[DIBCOM_MOD3000_COLD], NULL }, + { &dibusb_dib3000mb_table[DIBCOM_MOD3000_WARM], NULL }, }, { "KWorld V-Stream XPERT DTV - DVB-T USB1.1", - { &dibusb_dib3000mb_table[7], NULL }, - { &dibusb_dib3000mb_table[8], NULL }, + { &dibusb_dib3000mb_table[EMPIA_VSTREAM_COLD], NULL }, + { &dibusb_dib3000mb_table[EMPIA_VSTREAM_WARM], NULL }, }, { "Grandtec USB1.1 DVB-T", - { &dibusb_dib3000mb_table[9], &dibusb_dib3000mb_table[11], NULL }, - { &dibusb_dib3000mb_table[10], &dibusb_dib3000mb_table[12], NULL }, + { &dibusb_dib3000mb_table[GRANDTEC_DVBT_USB_COLD], &dibusb_dib3000mb_table[GRANDTEC_MOD3000_COLD], NULL }, + { &dibusb_dib3000mb_table[GRANDTEC_DVBT_USB_WARM], &dibusb_dib3000mb_table[GRANDTEC_MOD3000_WARM], NULL }, }, { "Unknown USB1.1 DVB-T device ???? please report the name to the author", - { &dibusb_dib3000mb_table[13], NULL }, - { &dibusb_dib3000mb_table[14], NULL }, + { &dibusb_dib3000mb_table[UNK_HYPER_PALTEK_COLD], NULL }, + { &dibusb_dib3000mb_table[UNK_HYPER_PALTEK_WARM], NULL }, }, { "TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device", - { &dibusb_dib3000mb_table[15], &dibusb_dib3000mb_table[17], NULL}, - { &dibusb_dib3000mb_table[16], &dibusb_dib3000mb_table[18], NULL}, + { &dibusb_dib3000mb_table[VISIONPLUS_VP7041_COLD], &dibusb_dib3000mb_table[TWINHAN_VP7041_COLD], NULL}, + { &dibusb_dib3000mb_table[VISIONPLUS_VP7041_WARM], &dibusb_dib3000mb_table[TWINHAN_VP7041_WARM], NULL}, }, { "Artec T1 USB1.1 TVBOX with AN2135", - { &dibusb_dib3000mb_table[19], NULL }, - { &dibusb_dib3000mb_table[20], NULL }, + { &dibusb_dib3000mb_table[ULTIMA_TVBOX_COLD], NULL }, + { &dibusb_dib3000mb_table[ULTIMA_TVBOX_WARM], NULL }, }, { "VideoWalker DVB-T USB", - { &dibusb_dib3000mb_table[25], NULL }, - { &dibusb_dib3000mb_table[26], NULL }, + { &dibusb_dib3000mb_table[KYE_DVB_T_COLD], NULL }, + { &dibusb_dib3000mb_table[KYE_DVB_T_WARM], NULL }, }, } };
@@ -319,12 +340,12 @@ static struct dvb_usb_device_properties dibusb1_1_an2235_properties = {#endif .devices = { {"Artec T1 USB1.1 TVBOX with AN2235" , - { &dibusb_dib3000mb_table[21], NULL }, - { &dibusb_dib3000mb_table[22], NULL }, + { &dibusb_dib3000mb_table[ULTIMA_TVBOX_AN2235_COLD], NULL }, + { &dibusb_dib3000mb_table[ULTIMA_TVBOX_AN2235_WARM], NULL }, }, #ifdef CONFIG_DVB_USB_DIBUSB_MB_FAULTY { "Artec T1 USB1.1 TVBOX with AN2235 (faulty USB IDs)", - { &dibusb_dib3000mb_table[30], NULL }, + { &dibusb_dib3000mb_table[ULTIMA_TVBOX_ANCHOR_COLD], NULL }, { NULL }, }, { NULL },
@@ -384,11 +405,11 @@ static struct dvb_usb_device_properties dibusb2_0b_properties = { .num_device_descs = 2, .devices = { {"KWorld/ADSTech Instant DVB-T USB2.0" , - { &dibusb_dib3000mb_table[23], NULL }, - { &dibusb_dib3000mb_table[24], NULL }, + { &dibusb_dib3000mb_table[ADSTECH_USB2_COLD], NULL }, + { &dibusb_dib3000mb_table[ADSTECH_USB2_WARM], NULL }, }, { "KWorld Xpert DVB-T USB2.0", - { &dibusb_dib3000mb_table[27], NULL }, + { &dibusb_dib3000mb_table[KWORLD_VSTREAM_COLD], NULL }, { NULL } }, { NULL },
@@ -446,8 +467,8 @@ static struct dvb_usb_device_properties artec_t1_usb2_properties = { .num_device_descs = 1, .devices = { { "Artec T1 USB2.0", - { &dibusb_dib3000mb_table[28], NULL }, - { &dibusb_dib3000mb_table[29], NULL }, + { &dibusb_dib3000mb_table[ULTIMA_TVBOX_USB2_COLD], NULL }, + { &dibusb_dib3000mb_table[ULTIMA_TVBOX_USB2_WARM], NULL }, }, { NULL }, }
include/media/dvb-usb-ids.h +8 -3
@@ -133,8 +133,6 @@#define USB_PID_AVERMEDIA_B835 0xb835#define USB_PID_AVERMEDIA_DVBT_USB2_COLD 0xa800#define USB_PID_AVERMEDIA_DVBT_USB2_WARM 0xa801 -#define USB_PID_AVERMEDIA_DVBT_USB_COLD 0x0001 -#define USB_PID_AVERMEDIA_DVBT_USB_WARM 0x0002#define USB_PID_AVERMEDIA_EXPRESS 0xb568#define USB_PID_AVERMEDIA_H335 0x0335#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R 0x0039
@@ -230,6 +228,8 @@#define USB_PID_ELGATO_EYETV_SAT 0x002a#define USB_PID_ELGATO_EYETV_SAT_V2 0x0025#define USB_PID_ELGATO_EYETV_SAT_V3 0x0036 +#define USB_PID_EMPIA_VSTREAM_COLD 0x17de +#define USB_PID_EMPIA_VSTREAM_WARM 0x17df#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115#define USB_PID_FREECOM_DVBT 0x0160#define USB_PID_FREECOM_DVBT_2 0x0161
@@ -251,6 +251,8 @@#define USB_PID_GRANDTEC_DVBT_USB2_WARM 0x0bc7#define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0#define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1 +#define USB_PID_GRANDTEC_MOD3000_COLD 0x0bb8 +#define USB_PID_GRANDTEC_MOD3000_WARM 0x0bb9#define USB_PID_HAMA_DVBT_HYBRID 0x2758#define USB_PID_HANFTEK_UMT_010_COLD 0x0001#define USB_PID_HANFTEK_UMT_010_WARM 0x0015
@@ -285,7 +287,6 @@#define USB_PID_KWORLD_UB383_T 0xe383#define USB_PID_KWORLD_UB499_2T_T09 0xe409#define USB_PID_KWORLD_VSTREAM_COLD 0x17de -#define USB_PID_KWORLD_VSTREAM_WARM 0x17df#define USB_PID_KYE_DVB_T_COLD 0x701e#define USB_PID_KYE_DVB_T_WARM 0x701f#define USB_PID_LITEON_DVB_T_COLD 0xf000
@@ -429,10 +430,14 @@#define USB_PID_VISIONPLUS_VP7020_COLD 0x3203#define USB_PID_VISIONPLUS_VP7020_WARM 0x3204#define USB_PID_VISIONPLUS_VP7021_COLD 0x3207 +#define USB_PID_VISIONPLUS_VP7041_COLD 0x3201 +#define USB_PID_VISIONPLUS_VP7041_WARM 0x3202#define USB_PID_VISIONPLUS_VP7045_COLD 0x3205#define USB_PID_VISIONPLUS_VP7045_WARM 0x3206#define USB_PID_WIDEVIEW_DTT200U_COLD 0x0201#define USB_PID_WIDEVIEW_DTT200U_WARM 0x0301 +#define USB_PID_WIDEVIEW_DVBT_USB_COLD 0x0001 +#define USB_PID_WIDEVIEW_DVBT_USB_WARM 0x0002#define USB_PID_WIDEVIEW_WT220U_COLD 0x0222#define USB_PID_WIDEVIEW_WT220U_FC_COLD 0x0225#define USB_PID_WIDEVIEW_WT220U_FC_WARM 0x0226
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 25/26 media: dvb-usb: dibusb-mc: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/dibusb-mc.c | 88 ++++++++++++++++----------- include/media/dvb-usb-ids.h | 16 ++--- 2 files changed, 62 insertions(+), 42 deletions(-)
drivers/media/usb/dvb-usb/dibusb-mc.c +54 -34
@@ -24,25 +24,45 @@ static int dibusb_mc_probe(struct usb_interface *intf, }/* do not change the order of the ID table */ -static struct usb_device_id dibusb_dib3000mc_table [] = { -/* 00 */ {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_MOD3001_COLD ) }, -/* 01 */ {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_MOD3001_WARM ) }, -/* 02 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ULTIMA_TVBOX_USB2_COLD ) }, -/* 03 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ULTIMA_TVBOX_USB2_WARM ) },// ( ? ) -/* 04 */ {USB_DEVICE (USB_VID_LITEON ,USB_PID_LITEON_DVB_T_COLD ) }, -/* 05 */ {USB_DEVICE (USB_VID_LITEON ,USB_PID_LITEON_DVB_T_WARM ) }, -/* 06 */ {USB_DEVICE (USB_VID_EMPIA ,USB_PID_DIGIVOX_MINI_SL_COLD ) }, -/* 07 */ {USB_DEVICE (USB_VID_EMPIA ,USB_PID_DIGIVOX_MINI_SL_WARM ) }, -/* 08 */ {USB_DEVICE (USB_VID_GRANDTEC ,USB_PID_GRANDTEC_DVBT_USB2_COLD ) }, -/* 09 */ {USB_DEVICE (USB_VID_GRANDTEC ,USB_PID_GRANDTEC_DVBT_USB2_WARM ) }, -/* 10 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ARTEC_T14_COLD ) }, -/* 11 */ {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ARTEC_T14_WARM ) }, -/* 12 */ {USB_DEVICE (USB_VID_LEADTEK ,USB_PID_WINFAST_DTV_DONGLE_COLD ) }, -/* 13 */ {USB_DEVICE (USB_VID_LEADTEK ,USB_PID_WINFAST_DTV_DONGLE_WARM ) }, -/* 14 */ {USB_DEVICE (USB_VID_HUMAX_COEX ,USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD ) }, -/* 15 */ {USB_DEVICE (USB_VID_HUMAX_COEX ,USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM ) }, - { }/* Terminating entry */ +enum { +DIBCOM_MOD3001_COLD , +DIBCOM_MOD3001_WARM , +ULTIMA_TVBOX_USB2_COLD , +ULTIMA_TVBOX_USB2_WARM , +LITEON_DVB_T_COLD , +LITEON_DVB_T_WARM , +EMPIA_DIGIVOX_MINI_SL_COLD , +EMPIA_DIGIVOX_MINI_SL_WARM , +GRANDTEC_DVBT_USB2_COLD , +GRANDTEC_DVBT_USB2_WARM , +ULTIMA_ARTEC_T14_COLD , +ULTIMA_ARTEC_T14_WARM , +LEADTEK_WINFAST_DTV_DONGLE_COLD , +LEADTEK_WINFAST_DTV_DONGLE_WARM , +HUMAX_DVB_T_STICK_HIGH_SPEED_COLD , +HUMAX_DVB_T_STICK_HIGH_SPEED_WARM , }; + +static struct usb_device_id dibusb_dib3000mc_table[] = { +DVB_USB_DEV (DIBCOM ,DIBCOM_MOD3001_COLD ), +DVB_USB_DEV (DIBCOM ,DIBCOM_MOD3001_WARM ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_TVBOX_USB2_COLD ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_TVBOX_USB2_WARM ), +DVB_USB_DEV (LITEON ,LITEON_DVB_T_COLD ), +DVB_USB_DEV (LITEON ,LITEON_DVB_T_WARM ), +DVB_USB_DEV (EMPIA ,EMPIA_DIGIVOX_MINI_SL_COLD ), +DVB_USB_DEV (EMPIA ,EMPIA_DIGIVOX_MINI_SL_WARM ), +DVB_USB_DEV (GRANDTEC ,GRANDTEC_DVBT_USB2_COLD ), +DVB_USB_DEV (GRANDTEC ,GRANDTEC_DVBT_USB2_WARM ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_ARTEC_T14_COLD ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_ARTEC_T14_WARM ), +DVB_USB_DEV (LEADTEK ,LEADTEK_WINFAST_DTV_DONGLE_COLD ), +DVB_USB_DEV (LEADTEK ,LEADTEK_WINFAST_DTV_DONGLE_WARM ), +DVB_USB_DEV (HUMAX_COEX ,HUMAX_DVB_T_STICK_HIGH_SPEED_COLD ), +DVB_USB_DEV (HUMAX_COEX ,HUMAX_DVB_T_STICK_HIGH_SPEED_WARM ), + { } +}; +MODULE_DEVICE_TABLE (usb, dibusb_dib3000mc_table);static struct dvb_usb_device_properties dibusb_mc_properties = {
@@ -95,37 +115,37 @@ static struct dvb_usb_device_properties dibusb_mc_properties = { .num_device_descs = 8, .devices = { { "DiBcom USB2.0 DVB-T reference design (MOD3000P)", - { &dibusb_dib3000mc_table[0], NULL }, - { &dibusb_dib3000mc_table[1], NULL }, + { &dibusb_dib3000mc_table[DIBCOM_MOD3001_COLD], NULL }, + { &dibusb_dib3000mc_table[DIBCOM_MOD3001_WARM], NULL }, }, { "Artec T1 USB2.0 TVBOX (please check the warm ID)", - { &dibusb_dib3000mc_table[2], NULL }, - { &dibusb_dib3000mc_table[3], NULL }, + { &dibusb_dib3000mc_table[ULTIMA_TVBOX_USB2_COLD], NULL }, + { &dibusb_dib3000mc_table[ULTIMA_TVBOX_USB2_WARM], NULL }, }, { "LITE-ON USB2.0 DVB-T Tuner", /* Also rebranded as Intuix S800, Toshiba */ - { &dibusb_dib3000mc_table[4], NULL }, - { &dibusb_dib3000mc_table[5], NULL }, + { &dibusb_dib3000mc_table[LITEON_DVB_T_COLD], NULL }, + { &dibusb_dib3000mc_table[LITEON_DVB_T_WARM], NULL }, }, { "MSI Digivox Mini SL", - { &dibusb_dib3000mc_table[6], NULL }, - { &dibusb_dib3000mc_table[7], NULL }, + { &dibusb_dib3000mc_table[EMPIA_DIGIVOX_MINI_SL_COLD], NULL }, + { &dibusb_dib3000mc_table[EMPIA_DIGIVOX_MINI_SL_WARM], NULL }, }, { "GRAND - USB2.0 DVB-T adapter", - { &dibusb_dib3000mc_table[8], NULL }, - { &dibusb_dib3000mc_table[9], NULL }, + { &dibusb_dib3000mc_table[GRANDTEC_DVBT_USB2_COLD], NULL }, + { &dibusb_dib3000mc_table[GRANDTEC_DVBT_USB2_WARM], NULL }, }, { "Artec T14 - USB2.0 DVB-T", - { &dibusb_dib3000mc_table[10], NULL }, - { &dibusb_dib3000mc_table[11], NULL }, + { &dibusb_dib3000mc_table[ULTIMA_ARTEC_T14_COLD], NULL }, + { &dibusb_dib3000mc_table[ULTIMA_ARTEC_T14_WARM], NULL }, }, { "Leadtek - USB2.0 Winfast DTV dongle", - { &dibusb_dib3000mc_table[12], NULL }, - { &dibusb_dib3000mc_table[13], NULL }, + { &dibusb_dib3000mc_table[LEADTEK_WINFAST_DTV_DONGLE_COLD], NULL }, + { &dibusb_dib3000mc_table[LEADTEK_WINFAST_DTV_DONGLE_WARM], NULL }, }, { "Humax/Coex DVB-T USB Stick 2.0 High Speed", - { &dibusb_dib3000mc_table[14], NULL }, - { &dibusb_dib3000mc_table[15], NULL }, + { &dibusb_dib3000mc_table[HUMAX_DVB_T_STICK_HIGH_SPEED_COLD], NULL }, + { &dibusb_dib3000mc_table[HUMAX_DVB_T_STICK_HIGH_SPEED_WARM], NULL }, }, { NULL }, }
include/media/dvb-usb-ids.h +8 -8
@@ -111,8 +111,6 @@#define USB_PID_ANUBIS_MSI_DIGI_VOX_MINI_II 0x1513#define USB_PID_ANYSEE 0x861f#define USB_PID_ARTEC_T14BR 0x810f -#define USB_PID_ARTEC_T14_COLD 0x810b -#define USB_PID_ARTEC_T14_WARM 0x810c#define USB_PID_ASUS_U3000 0x171f#define USB_PID_ASUS_U3000H 0x1736#define USB_PID_ASUS_U3100 0x173f
@@ -195,12 +193,8 @@#define USB_PID_DIBCOM_TFE8096P 0x1f9C#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD 0xdb54#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM 0xdb55 -#define USB_PID_DIGIVOX_MINI_SL_COLD 0xe360 -#define USB_PID_DIGIVOX_MINI_SL_WARM 0xe361#define USB_PID_DPOSH_M9206_COLD 0x9206#define USB_PID_DPOSH_M9206_WARM 0xa090 -#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000 -#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM 0x5001#define USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD 0xdb50#define USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM 0xdb51#define USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD 0xdb58
@@ -228,6 +222,8 @@#define USB_PID_ELGATO_EYETV_SAT 0x002a#define USB_PID_ELGATO_EYETV_SAT_V2 0x0025#define USB_PID_ELGATO_EYETV_SAT_V3 0x0036 +#define USB_PID_EMPIA_DIGIVOX_MINI_SL_COLD 0xe360 +#define USB_PID_EMPIA_DIGIVOX_MINI_SL_WARM 0xe361#define USB_PID_EMPIA_VSTREAM_COLD 0x17de#define USB_PID_EMPIA_VSTREAM_WARM 0x17df#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115
@@ -270,6 +266,8 @@#define USB_PID_HAUPPAUGE_TIGER_ATSC_B210 0xb210#define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_COLD 0x9300#define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_WARM 0x9301 +#define USB_PID_HUMAX_DVB_T_STICK_HIGH_SPEED_COLD 0x5000 +#define USB_PID_HUMAX_DVB_T_STICK_HIGH_SPEED_WARM 0x5001#define USB_PID_INTEL_CE9500 0x9500#define USB_PID_ITETECH_IT9135 0x9135#define USB_PID_ITETECH_IT9135_9005 0x9005
@@ -289,6 +287,8 @@#define USB_PID_KWORLD_VSTREAM_COLD 0x17de#define USB_PID_KYE_DVB_T_COLD 0x701e#define USB_PID_KYE_DVB_T_WARM 0x701f +#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_COLD 0x6025 +#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_WARM 0x6026#define USB_PID_LITEON_DVB_T_COLD 0xf000#define USB_PID_LITEON_DVB_T_WARM 0xf001#define USB_PID_MEDION_MD95700 0x0932
@@ -412,6 +412,8 @@#define USB_PID_TWINHAN_VP7021_WARM 0x3208#define USB_PID_TWINHAN_VP7041_COLD 0x3201#define USB_PID_TWINHAN_VP7041_WARM 0x3202 +#define USB_PID_ULTIMA_ARTEC_T14_COLD 0x810b +#define USB_PID_ULTIMA_ARTEC_T14_WARM 0x810c#define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107#define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108#define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235
@@ -447,13 +449,11 @@#define USB_PID_WIDEVIEW_WT220U_ZL0353_WARM 0x022b#define USB_PID_WINFAST_DTV2000DS 0x6a04#define USB_PID_WINFAST_DTV2000DS_PLUS 0x6f12 -#define USB_PID_WINFAST_DTV_DONGLE_COLD 0x6025#define USB_PID_WINFAST_DTV_DONGLE_GOLD 0x6029#define USB_PID_WINFAST_DTV_DONGLE_H 0x60f6#define USB_PID_WINFAST_DTV_DONGLE_MINID 0x6f0f#define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00#define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01 -#define USB_PID_WINFAST_DTV_DONGLE_WARM 0x6026#define USB_PID_WINTV_SOLOHD 0x0264#define USB_PID_WINTV_SOLOHD_2 0x8268#define USB_PID_XBOX_ONE_TUNER 0x02d5
Signature · 1 line
2.35.1
Mauro Carvalho Chehab
maintainerPATCH 26/26 media: dvb-usb: dib0700_devices: use an enum for the device number
In reply to Mauro Carvalho ChehabThe device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed.
Fix it by using an enum.
---
To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/26] at: https://lore.kernel.org/all/[email protected]/
drivers/media/usb/dvb-usb/dib0700_devices.c | 428 ++++++++++++-------- include/media/dvb-usb-ids.h | 17 +- 2 files changed, 268 insertions(+), 177 deletions(-)
drivers/media/usb/dvb-usb/dib0700_devices.c +258 -170
@@ -3816,99 +3816,187 @@ static int xbox_one_attach(struct dvb_usb_adapter *adap)/* DVB-USB and USB stuff follows */ +enum { +DIBCOM_STK7700P , +DIBCOM_STK7700P_PC , +HAUPPAUGE_NOVA_T_500 , +HAUPPAUGE_NOVA_T_500_2 , +HAUPPAUGE_NOVA_T_STICK , +AVERMEDIA_VOLAR , +COMPRO_VIDEOMATE_U500 , +UNIWILL_STK7700P , +LEADTEK_WINFAST_DTV_DONGLE_STK7700P , +HAUPPAUGE_NOVA_T_STICK_2 , +AVERMEDIA_VOLAR_2 , +PINNACLE_PCTV2000E , +TERRATEC_CINERGY_DT_XS_DIVERSITY , +HAUPPAUGE_NOVA_TD_STICK , +DIBCOM_STK7700D , +DIBCOM_STK7070P , +PINNACLE_PCTV_DVB_T_FLASH , +DIBCOM_STK7070PD , +PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T , +COMPRO_VIDEOMATE_U500_PC , +AVERMEDIA_EXPRESS , +GIGABYTE_U7000 , +ULTIMA_ARTEC_T14BR , +ASUS_U3000 , +ASUS_U3100 , +HAUPPAUGE_NOVA_T_STICK_3 , +HAUPPAUGE_MYTV_T , +TERRATEC_CINERGY_HT_USB_XE , +PINNACLE_EXPRESSCARD_320CX , +PINNACLE_PCTV72E , +PINNACLE_PCTV73E , +YUAN_EC372S , +TERRATEC_CINERGY_HT_EXPRESS , +TERRATEC_CINERGY_T_XXS , +LEADTEK_WINFAST_DTV_DONGLE_STK7700P_2 , +HAUPPAUGE_NOVA_TD_STICK_52009 , +HAUPPAUGE_NOVA_T_500_3 , +GIGABYTE_U8000 , +YUAN_STK7700PH , +ASUS_U3000H , +PINNACLE_PCTV801E , +PINNACLE_PCTV801E_SE , +TERRATEC_CINERGY_T_EXPRESS , +TERRATEC_CINERGY_DT_XS_DIVERSITY_2 , +SONY_PLAYTV , +YUAN_PD378S , +HAUPPAUGE_TIGER_ATSC , +HAUPPAUGE_TIGER_ATSC_B210 , +YUAN_MC770 , +ELGATO_EYETV_DTT , + ELGATO_EYETV_DTT_Dlx, +LEADTEK_WINFAST_DTV_DONGLE_H , +TERRATEC_T3 , +TERRATEC_T5 , +YUAN_STK7700D , +YUAN_STK7700D_2 , +PINNACLE_PCTV73A , +PCTV_PINNACLE_PCTV73ESE , +PCTV_PINNACLE_PCTV282E , +DIBCOM_STK7770P , +TERRATEC_CINERGY_T_XXS_2 , +DIBCOM_STK807XPVR , +DIBCOM_STK807XP , +PIXELVIEW_SBTVD , +EVOLUTEPC_TVWAY_PLUS , +PINNACLE_PCTV73ESE , +PINNACLE_PCTV282E , +DIBCOM_STK8096GP , +ELGATO_EYETV_DIVERSITY , +DIBCOM_NIM9090M , +DIBCOM_NIM8096MD , +DIBCOM_NIM9090MD , +DIBCOM_NIM7090 , +DIBCOM_TFE7090PVR , +TECHNISAT_AIRSTAR_TELESTICK_2 , +MEDION_CREATIX_CTX1921 , +PINNACLE_PCTV340E , +PINNACLE_PCTV340E_SE , +DIBCOM_TFE7790P , +DIBCOM_TFE8096P , +ELGATO_EYETV_DTT_2 , +PCTV_2002E , +PCTV_2002E_SE , +PCTV_DIBCOM_STK8096PVR , +DIBCOM_STK8096PVR , +HAMA_DVBT_HYBRID , +MICROSOFT_XBOX_ONE_TUNER , +}; +struct usb_device_id dib0700_usb_id_table[] = { -/* 0 */ {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK7700P ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK7700P_PC ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_NOVA_T_500 ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_NOVA_T_500_2 ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_NOVA_T_STICK ) }, -/* 5 */ {USB_DEVICE (USB_VID_AVERMEDIA ,USB_PID_AVERMEDIA_VOLAR ) }, - {USB_DEVICE (USB_VID_COMPRO ,USB_PID_COMPRO_VIDEOMATE_U500 ) }, - {USB_DEVICE (USB_VID_UNIWILL ,USB_PID_UNIWILL_STK7700P ) }, - {USB_DEVICE (USB_VID_LEADTEK ,USB_PID_WINFAST_DTV_DONGLE_STK7700P ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_NOVA_T_STICK_2 ) }, -/* 10 */ {USB_DEVICE (USB_VID_AVERMEDIA ,USB_PID_AVERMEDIA_VOLAR_2 ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV2000E ) }, - {USB_DEVICE (USB_VID_TERRATEC , -USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_NOVA_TD_STICK ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK7700D ) }, -/* 15 */ {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK7070P ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV_DVB_T_FLASH ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK7070PD ) }, - {USB_DEVICE (USB_VID_PINNACLE , -USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T ) }, - {USB_DEVICE (USB_VID_COMPRO ,USB_PID_COMPRO_VIDEOMATE_U500_PC ) }, -/* 20 */ {USB_DEVICE (USB_VID_AVERMEDIA ,USB_PID_AVERMEDIA_EXPRESS ) }, - {USB_DEVICE (USB_VID_GIGABYTE ,USB_PID_GIGABYTE_U7000 ) }, - {USB_DEVICE (USB_VID_ULTIMA_ELECTRONIC ,USB_PID_ARTEC_T14BR ) }, - {USB_DEVICE (USB_VID_ASUS ,USB_PID_ASUS_U3000 ) }, - {USB_DEVICE (USB_VID_ASUS ,USB_PID_ASUS_U3100 ) }, -/* 25 */ {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_NOVA_T_STICK_3 ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_MYTV_T ) }, - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_HT_USB_XE ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_EXPRESSCARD_320CX ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV72E ) }, -/* 30 */ {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV73E ) }, - {USB_DEVICE (USB_VID_YUAN ,USB_PID_YUAN_EC372S ) }, - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_HT_EXPRESS ) }, - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_T_XXS ) }, - {USB_DEVICE (USB_VID_LEADTEK ,USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 ) }, -/* 35 */ {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009 ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_NOVA_T_500_3 ) }, - {USB_DEVICE (USB_VID_GIGABYTE ,USB_PID_GIGABYTE_U8000 ) }, - {USB_DEVICE (USB_VID_YUAN ,USB_PID_YUAN_STK7700PH ) }, - {USB_DEVICE (USB_VID_ASUS ,USB_PID_ASUS_U3000H ) }, -/* 40 */ {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV801E ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV801E_SE ) }, - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_T_EXPRESS ) }, - {USB_DEVICE (USB_VID_TERRATEC , -USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY_2 ) }, - {USB_DEVICE (USB_VID_SONY ,USB_PID_SONY_PLAYTV ) }, -/* 45 */ {USB_DEVICE (USB_VID_YUAN ,USB_PID_YUAN_PD378S ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_TIGER_ATSC ) }, - {USB_DEVICE (USB_VID_HAUPPAUGE ,USB_PID_HAUPPAUGE_TIGER_ATSC_B210 ) }, - {USB_DEVICE (USB_VID_YUAN ,USB_PID_YUAN_MC770 ) }, - {USB_DEVICE (USB_VID_ELGATO ,USB_PID_ELGATO_EYETV_DTT ) }, -/* 50 */ {USB_DEVICE (USB_VID_ELGATO , USB_PID_ELGATO_EYETV_DTT_Dlx) }, - {USB_DEVICE (USB_VID_LEADTEK ,USB_PID_WINFAST_DTV_DONGLE_H ) }, - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_T3 ) }, - {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_T5 ) }, - {USB_DEVICE (USB_VID_YUAN ,USB_PID_YUAN_STK7700D ) }, -/* 55 */ {USB_DEVICE (USB_VID_YUAN ,USB_PID_YUAN_STK7700D_2 ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV73A ) }, - {USB_DEVICE (USB_VID_PCTV ,USB_PID_PINNACLE_PCTV73ESE ) }, - {USB_DEVICE (USB_VID_PCTV ,USB_PID_PINNACLE_PCTV282E ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK7770P ) }, -/* 60 */ {USB_DEVICE (USB_VID_TERRATEC ,USB_PID_TERRATEC_CINERGY_T_XXS_2 ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK807XPVR ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK807XP ) }, - {USB_DEVICE_VER (USB_VID_PIXELVIEW ,USB_PID_PIXELVIEW_SBTVD ,0x000 ,0x3f00 ) }, - {USB_DEVICE (USB_VID_EVOLUTEPC ,USB_PID_TVWAY_PLUS ) }, -/* 65 */ {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV73ESE ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV282E ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK8096GP ) }, - {USB_DEVICE (USB_VID_ELGATO ,USB_PID_ELGATO_EYETV_DIVERSITY ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_NIM9090M ) }, -/* 70 */ {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_NIM8096MD ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_NIM9090MD ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_NIM7090 ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_TFE7090PVR ) }, - {USB_DEVICE (USB_VID_TECHNISAT ,USB_PID_TECHNISAT_AIRSTAR_TELESTICK_2 ) }, -/* 75 */ {USB_DEVICE (USB_VID_MEDION ,USB_PID_CREATIX_CTX1921 ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV340E ) }, - {USB_DEVICE (USB_VID_PINNACLE ,USB_PID_PINNACLE_PCTV340E_SE ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_TFE7790P ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_TFE8096P ) }, -/* 80 */ {USB_DEVICE (USB_VID_ELGATO ,USB_PID_ELGATO_EYETV_DTT_2 ) }, - {USB_DEVICE (USB_VID_PCTV ,USB_PID_PCTV_2002E ) }, - {USB_DEVICE (USB_VID_PCTV ,USB_PID_PCTV_2002E_SE ) }, - {USB_DEVICE (USB_VID_PCTV ,USB_PID_DIBCOM_STK8096PVR ) }, - {USB_DEVICE (USB_VID_DIBCOM ,USB_PID_DIBCOM_STK8096PVR ) }, -/* 85 */ {USB_DEVICE (USB_VID_HAMA ,USB_PID_HAMA_DVBT_HYBRID ) }, - {USB_DEVICE (USB_VID_MICROSOFT ,USB_PID_XBOX_ONE_TUNER ) }, - {0 }/* Terminating entry */ +DVB_USB_DEV (DIBCOM ,DIBCOM_STK7700P ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK7700P_PC ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_NOVA_T_500 ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_NOVA_T_500_2 ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_NOVA_T_STICK ), +DVB_USB_DEV (AVERMEDIA ,AVERMEDIA_VOLAR ), +DVB_USB_DEV (COMPRO ,COMPRO_VIDEOMATE_U500 ), +DVB_USB_DEV (UNIWILL ,UNIWILL_STK7700P ), +DVB_USB_DEV (LEADTEK ,LEADTEK_WINFAST_DTV_DONGLE_STK7700P ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_NOVA_T_STICK_2 ), +DVB_USB_DEV (AVERMEDIA ,AVERMEDIA_VOLAR_2 ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV2000E ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_DT_XS_DIVERSITY ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_NOVA_TD_STICK ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK7700D ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK7070P ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV_DVB_T_FLASH ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK7070PD ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T ), +DVB_USB_DEV (COMPRO ,COMPRO_VIDEOMATE_U500_PC ), +DVB_USB_DEV (AVERMEDIA ,AVERMEDIA_EXPRESS ), +DVB_USB_DEV (GIGABYTE ,GIGABYTE_U7000 ), +DVB_USB_DEV (ULTIMA_ELECTRONIC ,ULTIMA_ARTEC_T14BR ), +DVB_USB_DEV (ASUS ,ASUS_U3000 ), +DVB_USB_DEV (ASUS ,ASUS_U3100 ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_NOVA_T_STICK_3 ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_MYTV_T ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_HT_USB_XE ), +DVB_USB_DEV (PINNACLE ,PINNACLE_EXPRESSCARD_320CX ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV72E ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV73E ), +DVB_USB_DEV (YUAN ,YUAN_EC372S ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_HT_EXPRESS ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_T_XXS ), +DVB_USB_DEV (LEADTEK ,LEADTEK_WINFAST_DTV_DONGLE_STK7700P_2 ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_NOVA_TD_STICK_52009 ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_NOVA_T_500_3 ), +DVB_USB_DEV (GIGABYTE ,GIGABYTE_U8000 ), +DVB_USB_DEV (YUAN ,YUAN_STK7700PH ), +DVB_USB_DEV (ASUS ,ASUS_U3000H ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV801E ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV801E_SE ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_T_EXPRESS ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_DT_XS_DIVERSITY_2 ), +DVB_USB_DEV (SONY ,SONY_PLAYTV ), +DVB_USB_DEV (YUAN ,YUAN_PD378S ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_TIGER_ATSC ), +DVB_USB_DEV (HAUPPAUGE ,HAUPPAUGE_TIGER_ATSC_B210 ), +DVB_USB_DEV (YUAN ,YUAN_MC770 ), +DVB_USB_DEV (ELGATO ,ELGATO_EYETV_DTT ), +DVB_USB_DEV (ELGATO , ELGATO_EYETV_DTT_Dlx), +DVB_USB_DEV (LEADTEK ,LEADTEK_WINFAST_DTV_DONGLE_H ), +DVB_USB_DEV (TERRATEC ,TERRATEC_T3 ), +DVB_USB_DEV (TERRATEC ,TERRATEC_T5 ), +DVB_USB_DEV (YUAN ,YUAN_STK7700D ), +DVB_USB_DEV (YUAN ,YUAN_STK7700D_2 ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV73A ), +DVB_USB_DEV (PCTV ,PCTV_PINNACLE_PCTV73ESE ), +DVB_USB_DEV (PCTV ,PCTV_PINNACLE_PCTV282E ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK7770P ), +DVB_USB_DEV (TERRATEC ,TERRATEC_CINERGY_T_XXS_2 ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK807XPVR ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK807XP ), +DVB_USB_DEV_VER (PIXELVIEW ,PIXELVIEW_SBTVD ,0x000 ,0x3f00 ), +DVB_USB_DEV (EVOLUTEPC ,EVOLUTEPC_TVWAY_PLUS ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV73ESE ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV282E ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK8096GP ), +DVB_USB_DEV (ELGATO ,ELGATO_EYETV_DIVERSITY ), +DVB_USB_DEV (DIBCOM ,DIBCOM_NIM9090M ), +DVB_USB_DEV (DIBCOM ,DIBCOM_NIM8096MD ), +DVB_USB_DEV (DIBCOM ,DIBCOM_NIM9090MD ), +DVB_USB_DEV (DIBCOM ,DIBCOM_NIM7090 ), +DVB_USB_DEV (DIBCOM ,DIBCOM_TFE7090PVR ), +DVB_USB_DEV (TECHNISAT ,TECHNISAT_AIRSTAR_TELESTICK_2 ), +DVB_USB_DEV (MEDION ,MEDION_CREATIX_CTX1921 ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV340E ), +DVB_USB_DEV (PINNACLE ,PINNACLE_PCTV340E_SE ), +DVB_USB_DEV (DIBCOM ,DIBCOM_TFE7790P ), +DVB_USB_DEV (DIBCOM ,DIBCOM_TFE8096P ), +DVB_USB_DEV (ELGATO ,ELGATO_EYETV_DTT_2 ), +DVB_USB_DEV (PCTV ,PCTV_2002E ), +DVB_USB_DEV (PCTV ,PCTV_2002E_SE ), +DVB_USB_DEV (PCTV ,PCTV_DIBCOM_STK8096PVR ), +DVB_USB_DEV (DIBCOM ,DIBCOM_STK8096PVR ), +DVB_USB_DEV (HAMA ,HAMA_DVBT_HYBRID ), +DVB_USB_DEV (MICROSOFT ,MICROSOFT_XBOX_ONE_TUNER ), + { } }; +MODULE_DEVICE_TABLE (usb, dib0700_usb_id_table);#define DIB0700_DEFAULT_DEVICE_PROPERTIES \
@@ -3962,35 +4050,35 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 8, .devices = { { "DiBcom STK7700P reference design", - { &dib0700_usb_id_table[0], &dib0700_usb_id_table[1] }, + { &dib0700_usb_id_table[DIBCOM_STK7700P], &dib0700_usb_id_table[DIBCOM_STK7700P_PC] }, { NULL }, }, { "Hauppauge Nova-T Stick", - { &dib0700_usb_id_table[4], &dib0700_usb_id_table[9], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_NOVA_T_STICK], &dib0700_usb_id_table[HAUPPAUGE_NOVA_T_STICK_2], NULL }, { NULL }, }, { "AVerMedia AVerTV DVB-T Volar", - { &dib0700_usb_id_table[5], &dib0700_usb_id_table[10] }, + { &dib0700_usb_id_table[AVERMEDIA_VOLAR], &dib0700_usb_id_table[AVERMEDIA_VOLAR_2] }, { NULL }, }, { "Compro Videomate U500", - { &dib0700_usb_id_table[6], &dib0700_usb_id_table[19] }, + { &dib0700_usb_id_table[COMPRO_VIDEOMATE_U500], &dib0700_usb_id_table[COMPRO_VIDEOMATE_U500_PC] }, { NULL }, }, { "Uniwill STK7700P based (Hama and others)", - { &dib0700_usb_id_table[7], NULL }, + { &dib0700_usb_id_table[UNIWILL_STK7700P], NULL }, { NULL }, }, { "Leadtek Winfast DTV Dongle (STK7700P based)", - { &dib0700_usb_id_table[8], &dib0700_usb_id_table[34] }, + { &dib0700_usb_id_table[LEADTEK_WINFAST_DTV_DONGLE_STK7700P], &dib0700_usb_id_table[LEADTEK_WINFAST_DTV_DONGLE_STK7700P_2] }, { NULL }, }, { "AVerMedia AVerTV DVB-T Express", - { &dib0700_usb_id_table[20] }, + { &dib0700_usb_id_table[AVERMEDIA_EXPRESS] }, { NULL }, }, { "Gigabyte U7000", - { &dib0700_usb_id_table[21], NULL }, + { &dib0700_usb_id_table[GIGABYTE_U7000], NULL }, { NULL }, } },
@@ -4030,7 +4118,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "Hauppauge Nova-T 500 Dual DVB-T", - { &dib0700_usb_id_table[2], &dib0700_usb_id_table[3], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_NOVA_T_500], &dib0700_usb_id_table[HAUPPAUGE_NOVA_T_500_2], NULL }, { NULL }, }, },
@@ -4078,23 +4166,23 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 5, .devices = { {"Pinnacle PCTV 2000e" , - { &dib0700_usb_id_table[11], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV2000E], NULL }, { NULL }, }, { "Terratec Cinergy DT XS Diversity", - { &dib0700_usb_id_table[12], NULL }, + { &dib0700_usb_id_table[TERRATEC_CINERGY_DT_XS_DIVERSITY], NULL }, { NULL }, }, { "Hauppauge Nova-TD Stick/Elgato Eye-TV Diversity", - { &dib0700_usb_id_table[13], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_NOVA_TD_STICK], NULL }, { NULL }, }, { "DiBcom STK7700D reference design", - { &dib0700_usb_id_table[14], NULL }, + { &dib0700_usb_id_table[DIBCOM_STK7700D], NULL }, { NULL }, }, { "YUAN High-Tech DiBcom STK7700D", - { &dib0700_usb_id_table[55], NULL }, + { &dib0700_usb_id_table[YUAN_STK7700D_2], NULL }, { NULL }, },
@@ -4131,15 +4219,15 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 3, .devices = { { "ASUS My Cinema U3000 Mini DVBT Tuner", - { &dib0700_usb_id_table[23], NULL }, + { &dib0700_usb_id_table[ASUS_U3000], NULL }, { NULL }, }, { "Yuan EC372S", - { &dib0700_usb_id_table[31], NULL }, + { &dib0700_usb_id_table[YUAN_EC372S], NULL }, { NULL }, }, { "Terratec Cinergy T Express", - { &dib0700_usb_id_table[42], NULL }, + { &dib0700_usb_id_table[TERRATEC_CINERGY_T_EXPRESS], NULL }, { NULL }, } },
@@ -4176,51 +4264,51 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 12, .devices = { { "DiBcom STK7070P reference design", - { &dib0700_usb_id_table[15], NULL }, + { &dib0700_usb_id_table[DIBCOM_STK7070P], NULL }, { NULL }, }, { "Pinnacle PCTV DVB-T Flash Stick", - { &dib0700_usb_id_table[16], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV_DVB_T_FLASH], NULL }, { NULL }, }, { "Artec T14BR DVB-T", - { &dib0700_usb_id_table[22], NULL }, + { &dib0700_usb_id_table[ULTIMA_ARTEC_T14BR], NULL }, { NULL }, }, { "ASUS My Cinema U3100 Mini DVBT Tuner", - { &dib0700_usb_id_table[24], NULL }, + { &dib0700_usb_id_table[ASUS_U3100], NULL }, { NULL }, }, { "Hauppauge Nova-T Stick", - { &dib0700_usb_id_table[25], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_NOVA_T_STICK_3], NULL }, { NULL }, }, { "Hauppauge Nova-T MyTV.t", - { &dib0700_usb_id_table[26], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_MYTV_T], NULL }, { NULL }, }, { "Pinnacle PCTV 72e", - { &dib0700_usb_id_table[29], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV72E], NULL }, { NULL }, }, { "Pinnacle PCTV 73e", - { &dib0700_usb_id_table[30], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV73E], NULL }, { NULL }, }, { "Elgato EyeTV DTT", - { &dib0700_usb_id_table[49], NULL }, + { &dib0700_usb_id_table[ELGATO_EYETV_DTT], NULL }, { NULL }, }, { "Yuan PD378S", - { &dib0700_usb_id_table[45], NULL }, + { &dib0700_usb_id_table[YUAN_PD378S], NULL }, { NULL }, }, { "Elgato EyeTV Dtt Dlx PD378S", - { &dib0700_usb_id_table[50], NULL }, + { &dib0700_usb_id_table[ELGATO_EYETV_DTT_Dlx], NULL }, { NULL }, }, { "Elgato EyeTV DTT rev. 2", - { &dib0700_usb_id_table[80], NULL }, + { &dib0700_usb_id_table[ELGATO_EYETV_DTT_2], NULL }, { NULL }, }, },
@@ -4257,15 +4345,15 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 3, .devices = { { "Pinnacle PCTV 73A", - { &dib0700_usb_id_table[56], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV73A], NULL }, { NULL }, }, { "Pinnacle PCTV 73e SE", - { &dib0700_usb_id_table[57], &dib0700_usb_id_table[65], NULL }, + { &dib0700_usb_id_table[PCTV_PINNACLE_PCTV73ESE], &dib0700_usb_id_table[PINNACLE_PCTV73ESE], NULL }, { NULL }, }, { "Pinnacle PCTV 282e", - { &dib0700_usb_id_table[58], &dib0700_usb_id_table[66], NULL }, + { &dib0700_usb_id_table[PCTV_PINNACLE_PCTV282E], &dib0700_usb_id_table[PINNACLE_PCTV282E], NULL }, { NULL }, }, },
@@ -4314,15 +4402,15 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 3, .devices = { { "Hauppauge Nova-TD Stick (52009)", - { &dib0700_usb_id_table[35], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_NOVA_TD_STICK_52009], NULL }, { NULL }, }, { "PCTV 2002e", - { &dib0700_usb_id_table[81], NULL }, + { &dib0700_usb_id_table[PCTV_2002E], NULL }, { NULL }, }, { "PCTV 2002e SE", - { &dib0700_usb_id_table[82], NULL }, + { &dib0700_usb_id_table[PCTV_2002E_SE], NULL }, { NULL }, }, },
@@ -4371,24 +4459,24 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 5, .devices = { { "DiBcom STK7070PD reference design", - { &dib0700_usb_id_table[17], NULL }, + { &dib0700_usb_id_table[DIBCOM_STK7070PD], NULL }, { NULL }, }, { "Pinnacle PCTV Dual DVB-T Diversity Stick", - { &dib0700_usb_id_table[18], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T], NULL }, { NULL }, }, { "Hauppauge Nova-TD-500 (84xxx)", - { &dib0700_usb_id_table[36], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_NOVA_T_500_3], NULL }, { NULL }, }, { "Terratec Cinergy DT USB XS Diversity/ T5", - { &dib0700_usb_id_table[43], - &dib0700_usb_id_table[53], NULL}, + { &dib0700_usb_id_table[TERRATEC_CINERGY_DT_XS_DIVERSITY_2], + &dib0700_usb_id_table[TERRATEC_T5], NULL}, { NULL }, }, { "Sony PlayTV", - { &dib0700_usb_id_table[44], NULL }, + { &dib0700_usb_id_table[SONY_PLAYTV], NULL }, { NULL }, }, },
@@ -4437,7 +4525,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "Elgato EyeTV Diversity", - { &dib0700_usb_id_table[68], NULL }, + { &dib0700_usb_id_table[ELGATO_EYETV_DIVERSITY], NULL }, { NULL }, }, },
@@ -4474,43 +4562,43 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 10, .devices = { { "Terratec Cinergy HT USB XE", - { &dib0700_usb_id_table[27], NULL }, + { &dib0700_usb_id_table[TERRATEC_CINERGY_HT_USB_XE], NULL }, { NULL }, }, { "Pinnacle Expresscard 320cx", - { &dib0700_usb_id_table[28], NULL }, + { &dib0700_usb_id_table[PINNACLE_EXPRESSCARD_320CX], NULL }, { NULL }, }, { "Terratec Cinergy HT Express", - { &dib0700_usb_id_table[32], NULL }, + { &dib0700_usb_id_table[TERRATEC_CINERGY_HT_EXPRESS], NULL }, { NULL }, }, { "Gigabyte U8000-RH", - { &dib0700_usb_id_table[37], NULL }, + { &dib0700_usb_id_table[GIGABYTE_U8000], NULL }, { NULL }, }, { "YUAN High-Tech STK7700PH", - { &dib0700_usb_id_table[38], NULL }, + { &dib0700_usb_id_table[YUAN_STK7700PH], NULL }, { NULL }, }, { "Asus My Cinema-U3000Hybrid", - { &dib0700_usb_id_table[39], NULL }, + { &dib0700_usb_id_table[ASUS_U3000H], NULL }, { NULL }, }, { "YUAN High-Tech MC770", - { &dib0700_usb_id_table[48], NULL }, + { &dib0700_usb_id_table[YUAN_MC770], NULL }, { NULL }, }, { "Leadtek WinFast DTV Dongle H", - { &dib0700_usb_id_table[51], NULL }, + { &dib0700_usb_id_table[LEADTEK_WINFAST_DTV_DONGLE_H], NULL }, { NULL }, }, { "YUAN High-Tech STK7700D", - { &dib0700_usb_id_table[54], NULL }, + { &dib0700_usb_id_table[YUAN_STK7700D], NULL }, { NULL }, }, { "Hama DVB=T Hybrid USB Stick", - { &dib0700_usb_id_table[85], NULL }, + { &dib0700_usb_id_table[HAMA_DVBT_HYBRID], NULL }, { NULL }, }, },
@@ -4542,11 +4630,11 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 2, .devices = { { "Pinnacle PCTV HD Pro USB Stick", - { &dib0700_usb_id_table[40], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV801E], NULL }, { NULL }, }, { "Pinnacle PCTV HD USB Stick", - { &dib0700_usb_id_table[41], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV801E_SE], NULL }, { NULL }, }, },
@@ -4578,11 +4666,11 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 2, .devices = { { "Hauppauge ATSC MiniCard (B200)", - { &dib0700_usb_id_table[46], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_TIGER_ATSC], NULL }, { NULL }, }, { "Hauppauge ATSC MiniCard (B210)", - { &dib0700_usb_id_table[47], NULL }, + { &dib0700_usb_id_table[HAUPPAUGE_TIGER_ATSC_B210], NULL }, { NULL }, }, },
@@ -4608,21 +4696,21 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 4, .devices = { { "DiBcom STK7770P reference design", - { &dib0700_usb_id_table[59], NULL }, + { &dib0700_usb_id_table[DIBCOM_STK7770P], NULL }, { NULL }, }, { "Terratec Cinergy T USB XXS (HD)/ T3", - { &dib0700_usb_id_table[33], - &dib0700_usb_id_table[52], - &dib0700_usb_id_table[60], NULL}, + { &dib0700_usb_id_table[TERRATEC_CINERGY_T_XXS], + &dib0700_usb_id_table[TERRATEC_T3], + &dib0700_usb_id_table[TERRATEC_CINERGY_T_XXS_2], NULL}, { NULL }, }, { "TechniSat AirStar TeleStick 2", - { &dib0700_usb_id_table[74], NULL }, + { &dib0700_usb_id_table[TECHNISAT_AIRSTAR_TELESTICK_2], NULL }, { NULL }, }, { "Medion CTX1921 DVB-T USB", - { &dib0700_usb_id_table[75], NULL }, + { &dib0700_usb_id_table[MEDION_CREATIX_CTX1921], NULL }, { NULL }, }, },
@@ -4658,15 +4746,15 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 3, .devices = { { "DiBcom STK807xP reference design", - { &dib0700_usb_id_table[62], NULL }, + { &dib0700_usb_id_table[DIBCOM_STK807XP], NULL }, { NULL }, }, { "Prolink Pixelview SBTVD", - { &dib0700_usb_id_table[63], NULL }, + { &dib0700_usb_id_table[PIXELVIEW_SBTVD], NULL }, { NULL }, }, { "EvolutePC TVWay+", - { &dib0700_usb_id_table[64], NULL }, + { &dib0700_usb_id_table[EVOLUTEPC_TVWAY_PLUS], NULL }, { NULL }, }, },
@@ -4715,7 +4803,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom STK807xPVR reference design", - { &dib0700_usb_id_table[61], NULL }, + { &dib0700_usb_id_table[DIBCOM_STK807XPVR], NULL }, { NULL }, }, },
@@ -4752,7 +4840,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom STK8096GP reference design", - { &dib0700_usb_id_table[67], NULL }, + { &dib0700_usb_id_table[DIBCOM_STK8096GP], NULL }, { NULL }, }, },
@@ -4789,7 +4877,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom STK9090M reference design", - { &dib0700_usb_id_table[69], NULL }, + { &dib0700_usb_id_table[DIBCOM_NIM9090M], NULL }, { NULL }, }, },
@@ -4826,7 +4914,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom NIM8096MD reference design", - { &dib0700_usb_id_table[70], NULL }, + { &dib0700_usb_id_table[DIBCOM_NIM8096MD], NULL }, { NULL }, }, },
@@ -4863,7 +4951,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom NIM9090MD reference design", - { &dib0700_usb_id_table[71], NULL }, + { &dib0700_usb_id_table[DIBCOM_NIM9090MD], NULL }, { NULL }, }, },
@@ -4900,7 +4988,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom NIM7090 reference design", - { &dib0700_usb_id_table[72], NULL }, + { &dib0700_usb_id_table[DIBCOM_NIM7090], NULL }, { NULL }, }, },
@@ -4951,7 +5039,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom TFE7090PVR reference design", - { &dib0700_usb_id_table[73], NULL }, + { &dib0700_usb_id_table[DIBCOM_TFE7090PVR], NULL }, { NULL }, }, },
@@ -4983,11 +5071,11 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 2, .devices = { { "Pinnacle PCTV 340e HD Pro USB Stick", - { &dib0700_usb_id_table[76], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV340E], NULL }, { NULL }, }, { "Pinnacle PCTV Hybrid Stick Solo", - { &dib0700_usb_id_table[77], NULL }, + { &dib0700_usb_id_table[PINNACLE_PCTV340E_SE], NULL }, { NULL }, }, },
@@ -5023,7 +5111,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom TFE7790P reference design", - { &dib0700_usb_id_table[78], NULL }, + { &dib0700_usb_id_table[DIBCOM_TFE7790P], NULL }, { NULL }, }, },
@@ -5061,7 +5149,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom TFE8096P reference design", - { &dib0700_usb_id_table[79], NULL }, + { &dib0700_usb_id_table[DIBCOM_TFE8096P], NULL }, { NULL }, }, },
@@ -5114,8 +5202,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "DiBcom STK8096-PVR reference design", - { &dib0700_usb_id_table[83], - &dib0700_usb_id_table[84], NULL}, + { &dib0700_usb_id_table[PCTV_DIBCOM_STK8096PVR], + &dib0700_usb_id_table[DIBCOM_STK8096PVR], NULL}, { NULL }, }, },
@@ -5145,7 +5233,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { .num_device_descs = 1, .devices = { { "Microsoft Xbox One Digital TV Tuner", - { &dib0700_usb_id_table[86], NULL }, + { &dib0700_usb_id_table[MICROSOFT_XBOX_ONE_TUNER], NULL }, { NULL }, }, },
include/media/dvb-usb-ids.h +10 -7
@@ -110,7 +110,6 @@#define USB_PID_ANUBIS_LIFEVIEW_TV_WALKER_TWIN_WARM 0x0513#define USB_PID_ANUBIS_MSI_DIGI_VOX_MINI_II 0x1513#define USB_PID_ANYSEE 0x861f -#define USB_PID_ARTEC_T14BR 0x810f#define USB_PID_ASUS_U3000 0x171f#define USB_PID_ASUS_U3000H 0x1736#define USB_PID_ASUS_U3100 0x173f
@@ -158,7 +157,6 @@#define USB_PID_CONCEPTRONIC_CTVDIGRCU 0xe397#define USB_PID_CONEXANT_D680_DMB 0x86d6#define USB_PID_CPYTO_REDI_PC50A 0xa803 -#define USB_PID_CREATIX_CTX1921 0x1921#define USB_PID_CTVDIGDUAL_V2 0xe410#define USB_PID_CYPRESS_DW2101 0x2101#define USB_PID_CYPRESS_DW2102 0x2102
@@ -226,6 +224,7 @@#define USB_PID_EMPIA_DIGIVOX_MINI_SL_WARM 0xe361#define USB_PID_EMPIA_VSTREAM_COLD 0x17de#define USB_PID_EMPIA_VSTREAM_WARM 0x17df +#define USB_PID_EVOLUTEPC_TVWAY_PLUS 0x0002#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115#define USB_PID_FREECOM_DVBT 0x0160#define USB_PID_FREECOM_DVBT_2 0x0161
@@ -288,10 +287,15 @@#define USB_PID_KYE_DVB_T_COLD 0x701e#define USB_PID_KYE_DVB_T_WARM 0x701f#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_COLD 0x6025 +#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_H 0x60f6 +#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_STK7700P 0x6f00 +#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_WARM 0x6026#define USB_PID_LITEON_DVB_T_COLD 0xf000#define USB_PID_LITEON_DVB_T_WARM 0xf001 +#define USB_PID_MEDION_CREATIX_CTX1921 0x1921#define USB_PID_MEDION_MD95700 0x0932 +#define USB_PID_MICROSOFT_XBOX_ONE_TUNER 0x02d5#define USB_PID_MIGLIA_WT220U_ZAP250_COLD 0x0220#define USB_PID_MSI_DIGIVOX_DUO 0x8801#define USB_PID_MSI_DIGI_VOX_MINI_III 0x8807
@@ -313,6 +317,9 @@#define USB_PID_PCTV_200E 0x020e#define USB_PID_PCTV_78E 0x025a#define USB_PID_PCTV_79E 0x0262 +#define USB_PID_PCTV_DIBCOM_STK8096PVR 0x1faa +#define USB_PID_PCTV_PINNACLE_PCTV282E 0x0248 +#define USB_PID_PCTV_PINNACLE_PCTV73ESE 0x0245#define USB_PID_PINNACLE_EXPRESSCARD_320CX 0x022e#define USB_PID_PINNACLE_PCTV2000E 0x022c#define USB_PID_PINNACLE_PCTV282E 0x0248
@@ -408,10 +415,10 @@#define USB_PID_TREKSTOR_DVBT 0x901b#define USB_PID_TREKSTOR_TERRES_2_0 0xC803#define USB_PID_TURBOX_DTT_2000 0xd3a4 -#define USB_PID_TVWAY_PLUS 0x0002#define USB_PID_TWINHAN_VP7021_WARM 0x3208#define USB_PID_TWINHAN_VP7041_COLD 0x3201#define USB_PID_TWINHAN_VP7041_WARM 0x3202 +#define USB_PID_ULTIMA_ARTEC_T14BR 0x810f#define USB_PID_ULTIMA_ARTEC_T14_COLD 0x810b#define USB_PID_ULTIMA_ARTEC_T14_WARM 0x810c#define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107
@@ -450,13 +457,9 @@#define USB_PID_WINFAST_DTV2000DS 0x6a04#define USB_PID_WINFAST_DTV2000DS_PLUS 0x6f12#define USB_PID_WINFAST_DTV_DONGLE_GOLD 0x6029 -#define USB_PID_WINFAST_DTV_DONGLE_H 0x60f6#define USB_PID_WINFAST_DTV_DONGLE_MINID 0x6f0f -#define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00 -#define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01#define USB_PID_WINTV_SOLOHD 0x0264#define USB_PID_WINTV_SOLOHD_2 0x8268 -#define USB_PID_XBOX_ONE_TUNER 0x02d5#define USB_PID_XTENSIONS_XD_380 0x0381#define USB_PID_YUAN_EC372S 0x1edc#define USB_PID_YUAN_MC770 0x0871
Signature · 1 line
2.35.1
(adding Benjamin Stürz and link to series)
https://lore.kernel.org/all/[email protected]/
Quoted 17 lines · Mauro Carvalho Chehab
There are two DVB USB cores on media. The new one (dvb-usb-v2) solves several problems with the previous one, but, unfortunately, there are several drivers that weren't migrated yet.
One of the problems with dvb-usb is that, besides the common DVB USB table, it also uses a per-device table which require links to the USB ID table.
This is done, on most drivers, using a magic number, which is easy to get outdated.
Rewrite the drivers in order to use an enum and use designated initializers where needed.
This patch series was inspired on this patch:
https://patchwork.kernel.org/project/linux-media/patch/[email protected]/
Quoted 8 lines
While it would be nice to also change the tables to be const, this is currently not possible, as a couple drivers that depend on the dvb-usb struct depend on it to not be const.
Writing a patch series like that and making it properly referencing the right entries is not fun. That's most drivers were never fixed. So, I ended using a script to change it, adding several checks on it, in order to avoid the risk of problems.
fancy script, nice...
Quoted 328 lines
Even so, I needed to manually adjust some patches.
This is the used script:
<script>
#!/usr/bin/perl
use strict;
use warnings;
useText::Tabs;
useFile::Find;my $usb_id_pre = "";
my $usb_id_end = "";my %vid;
my %pid;my %pid_count;
my $state = "pre";
sub
out_ids(){ open OUT, "> include/media/dvb-usb-ids.h" or die; print OUT $usb_id_pre; foreach my $k(sort keys %vid) { my $ln = sprintf "#define USB_VID_%-31s %s\n", $k, $vid{$k}; $ln = unexpand($ln); print OUT $ln; } print OUT "\n/* Product IDs */\n\n"; foreach my $k(sort keys %pid) { my $ln = sprintf "#define USB_PID_%-39s %s\n", $k, $pid{$k}; $ln = unexpand($ln); print OUT $ln; } print OUT $usb_id_end; close OUT; }my @enum;
sub
validate_model($$){ my $my_vid = $1; my $my_pid = $2; if (!$vid{$my_vid}) { print "$.# ERROR! VID: $my_vid\n"; return ""; } if (!$pid{$my_pid}) { print "$.# ERROR! PID: $my_pid\n"; return ""; } my $tmp_vid = $my_vid; $tmp_vid =~ s/_ELECTRONIC$//; $tmp_vid =~ s/_MICRO$//; $tmp_vid =~ s/_1$//; $tmp_vid =~ s/_2$//; $tmp_vid =~ s/_UNK$//; $tmp_vid =~ s/GTEK/GENIATECH/; # Change model name to be different my $model = $tmp_vid . "_" . $my_pid; return $my_pid if ($my_pid =~ /$tmp_vid[_]/ && !grep(/^$my_pid$/, @enum)); print "NEW model: $model\n"; # Add the new PID to include/media/dvb-usb-ids.h $pid{$model} = $pid{$my_pid}; $pid_count{$my_pid}--; # Drop unused PIDs if (!$pid_count{$my_pid}) { delete ($pid{$my_pid}); print "Drop: $my_pid\n"; } return $model if (!grep(/^$model$/, @enum)); print "$.# ERROR! Model $model aready exists\n"; return ""; }sub
count_pid(){ my $file = $File::Find::name; return if (!($file =~ /[.][ch]/)); open IN, $file or die "Can't open $file"; while (<IN>) { if (/USB_PID_([\w\_]+)/) { $pid_count{$1}++; next; } } close IN; }open IN, "
include/media/dvb-usb-ids.h" or die;while (<IN>) { if (/#define\s+USB_VID_(\S+)\s+(\S+)/) { $state = "vid"; $vid{$1} = $2; #print "VID: $1 -> $2\n"; next; } if (/#define\s+USB_PID_(\S+)\s+(\S+)/) { $state = "pid"; $pid{$1} = $2; #print "PID: $1 -> $2\n"; next; } if ($state eq "pre") { $usb_id_pre .= $_; } elsif ($state eq "pid") { $usb_id_end .= $_; } }close IN;
find({wanted => \&count_pid, no_chdir => 1}, "drivers/media/usb/");while (scalar @ARGV) { @enum = (); my @dev_id; my $usb_dev_id_table; my $out = ""; my $should_write = 1; my $file = $ARGV[0]; print "Processing $file...\n"; open IN, $file or die "Can't open $1"; my $entry = ""; my $pos = 0; while (<IN>) { if (m/struct\s.*usb_device_id\s+([\w\_]+).*{/) { $usb_dev_id_table = $1; } if (!$usb_dev_id_table) { $out .= $_; next; } if (m,\/\*\s*(\d+)\s*\*\/,) { if ($1 != $pos) { printf "$.# ERROR! Count is wrong! Want %d, got %d\n", $pos, $1; $should_write = 0; last; } } $pos++ if (m/USB_DEVICE/); last if (m/^}\s*;/); $entry .= $_; next if (!(m/}\s*,/)); if ($entry =~ m/USB_DEVICE\(USB_VID_([\w\_]+)\s*,\s*USB_PID_([\w\_]+)/) { my $my_vid = $1; my $my_pid = $2; my $model = validate_model($my_vid, $my_pid); if ($model eq "") { $should_write = 0; last; } push @enum, $model; push @dev_id, "DVB_USB_DEV($my_vid, $model)"; print "DVB_USB_DEV($my_vid, $model)\n"; } if ($entry =~ m/USB_DEVICE_VER\(USB_VID_([\w\_]+)\s*,\s*USB_PID_([\w\_]+)\s*,\s*(\w+)\s*,\s*(\w+)/) { my $my_vid = $1; my $my_pid = $2; my $lo = $3; my $hi = $4; my $model = validate_model($my_vid, $my_pid); if ($model eq "") { $should_write = 0; last; } push @enum, $model; push @dev_id, "DVB_USB_DEV_VER($my_vid, $model, $lo, $hi)"; print "DVB_USB_DEV_VER($my_vid, $model, $lo, $hi)\n"; } $entry = ""; } if ($should_write && scalar(@enum) != $pos) { printf "ERROR! Count is wrong! Want %d, got %d\n", $pos, scalar(@enum); $should_write = 0; } if ($usb_dev_id_table && $should_write) { $out .= "enum {\n"; for my $e (@enum) { $out .= "\t$e,\n"; } $out .= "};\n\n"; $out .= "static struct usb_device_id $usb_dev_id_table\[\] = {\n"; for my $e (@dev_id) { $out .= "\t$e,\n"; } $out .= "\t{ }\n"; $out .= "};\n\n"; my $start = 1; while (<IN>) { next if ($start && m/^$/); $start = 0; while (m/$usb_dev_id_table\[(\d+)\]/g) { my $i = $1; if ($1 > scalar @enum) { print "ERROR! $usb_dev_id_table element $1 doesn't exist!\n"; $should_write = 0; last; } my $idx = $enum[$1]; if (!(s,($usb_dev_id_table)\[$i\],$1\[$idx],g)) { print "ERROR! can't replace $1!\n"; $should_write = 0; last; } } $out .= $_; } close IN; } else { while (<IN>) { $out .= $_; } print "\tunchanged\n"; $should_write = 0; } if ($should_write || $file eq "include/media/dvb-usb-ids.h") { open OUT, ">$file" or die "Can't write on file $file"; print OUT $out; close OUT; printf "\twrote\n"; out_ids(); } shift @ARGV; }</script>
Mauro Carvalho Chehab (26):
media:dvb-usb-ids.h: sort entries
media: dvb-usb: move USB IDs todvb-usb-ids.h
media: dvb-usb: vp702x: reference to usb ID table
media: dvb-usb: Add helper macros for using USB VID/PID
media: dvb-usb: a800: use an enum for the device number
media: af9005: use the newer dvb-usb macros for USB device
media: dvb-usb: az6027: use an enum for the device number
media: cinergyT2-core: use the newer dvb-usb macros for USB device
media: cxusb: use the newer dvb-usb macros for USB device
media: digitv: use the newer dvb-usb macros for USB device
media: dvb-usb: dtt200u: use an enum for the device number
media: dtv5100: use the newer dvb-usb macros for USB device
media: dw2102: use the newer dvb-usb macros for USB device
media: dvb-usb: gp8psk: use an enum for the device number
media: dvb-usb: m920x: use an enum for the device number
media: dvb-usb: nova-t-usb2: use an enum for the device number
media: dvb-usb: opera1: use an enum for the device number
media: dvb-usb: pctv452e: use an enum for the device number
media: technisat-usb2: use the newer dvb-usb macros for USB device
media: dvb-usb: ttusb2: use an enum for the device number
media: dvb-usb: umt-010: use an enum for the device number
media: dvb-usb: vp702x: use an enum for the device number
media: dvb-usb: vp7045: use an enum for the device number
media: dvb-usb: dibusb-mb: use an enum for the device number
media: dvb-usb: dibusb-mc: use an enum for the device number
media: dvb-usb:dib0700_devices: use an enum for the device numberdrivers/media/usb/dvb-usb/a800.c | 18 +- drivers/media/usb/dvb-usb/af9005.c | 19 +- drivers/media/usb/dvb-usb/az6027.c | 45 +- drivers/media/usb/dvb-usb/cinergyT2-core.c | 10 +- drivers/media/usb/dvb-usb/cxusb.c | 88 +-- drivers/media/usb/dvb-usb/dib0700_devices.c | 428 +++++++------ drivers/media/usb/dvb-usb/dibusb-mb.c | 165 ++--- drivers/media/usb/dvb-usb/dibusb-mc.c | 88 +-- drivers/media/usb/dvb-usb/digitv.c | 13 +- drivers/media/usb/dvb-usb/dtt200u.c | 56 +- drivers/media/usb/dvb-usb/dtv5100.c | 11 +- drivers/media/usb/dvb-usb/dw2102.c | 84 ++- drivers/media/usb/dvb-usb/gp8psk.c | 36 +- drivers/media/usb/dvb-usb/m920x.c | 51 +- drivers/media/usb/dvb-usb/nova-t-usb2.c | 18 +- drivers/media/usb/dvb-usb/opera1.c | 15 +- drivers/media/usb/dvb-usb/pctv452e.c | 22 +- drivers/media/usb/dvb-usb/technisat-usb2.c | 11 +- drivers/media/usb/dvb-usb/ttusb2.c | 36 +- drivers/media/usb/dvb-usb/umt-010.c | 18 +- drivers/media/usb/dvb-usb/vp702x.c | 23 +- drivers/media/usb/dvb-usb/vp7045.c | 28 +- include/media/dvb-usb-ids.h | 632 +++++++++++--------- 23 files changed, 1071 insertions(+), 844 deletions(-)