Re: LinuxTV V3 vs. V4 API doc inconsistency, V4 probably wrong

2017-06-21 Thread Thierry Lelegard

Hi Mauro,

First of all, there's no Linux DVB API v4. It was skipped, because 
there

was a proposal for a v4, with was never adopted.


Alright, whatever, you have understood it was the post-V3 API, S2API, 
you name it.

You should assign it a version number by the way.


Thanks for reviewing it! Yeah, the asterisks there are wrong.
The definitions should be, instead:

int ioctl(int fd, FE_SET_TONE, enum fe_sec_tone_mode tone)
int ioctl(int fd, FE_SET_VOLTAGE, enum fe_sec_voltage voltage)
int ioctl(int fd, FE_DISEQC_SEND_BURST, enum fe_sec_mini_cmd tone)

As they're passing by value, not by reference[1].


Thanks for the clarification.


Feel free to send us fix patches.


Do you suggest I should locate the repository, clone it, understand the 
structure,
locate the documentation files, etc? That would take 20 times the time 
it takes to
remove the 3 asterisk characters when you already master the source code 
as you

probably do.

I own a few opensource projects on sourceforge and github. When a user 
reports
a problem, whether it is a functional one or a documentation typo, I fix 
it myself.
I do not expect users to do it for me. For those projects, I am the 
developer and
they are the users. I welcome contributions, but I do not demand or even 
expect them.


Cheers
-Thierry


LinuxTV V3 vs. V4 API doc inconsistency, V4 probably wrong

2017-06-19 Thread Thierry Lelegard

Hi,

There is an ambiguity in the LinuxTV documentation about the following 
ioctl's:


   FE_SET_TONE, FE_SET_VOLTAGE, FE_DISEQC_SEND_BURST.

These ioctl's take an enum value as input. In the old V3 API, the 
parameter
is passed by value. In the S2API documentation, it is passed by 
reference.

Most sample programs (a bit old) use the "pass by value" method.

V3 documentation: https://www.linuxtv.org/docs/dvbapi/dvbapi.html
   int ioctl(int fd, int request = FE_SET_TONE, fe_sec_tone_mode_t 
tone);
   int ioctl(int fd, int request = FE_SET_VOLTAGE, fe_sec_voltage_t 
voltage);
   int ioctl(int fd, int request = FE_DISEQC_SEND_BURST, 
fe_sec_mini_cmd_t burst);


S2API documentation: 
https://www.linuxtv.org/downloads/v4l-dvb-apis-new/uapi/dvb/frontend_fcalls.html

   int ioctl(int fd, FE_SET_TONE, enum fe_sec_tone_mode *tone)
   int ioctl(int fd, FE_SET_VOLTAGE, enum fe_sec_voltage *voltage)
   int ioctl(int fd, FE_DISEQC_SEND_BURST, enum fe_sec_mini_cmd *tone)

Also in: 
https://www.kernel.org/doc/html/v4.10/media/uapi/dvb/frontend_fcalls.html


Which one is correct? If both are correct and the API was changed (I 
doubt about it),

how can we know which one to use?

Normally, I would say that the most recent doc is right. However, all 
sample
codes use "by value". Moreover, if the most recent doc was right, then 
passing
by value should fail since the values are zero or close to zero and are 
not

valid addresses.

Thanks
-Thierry


RE: [linux-media] API V3 vs S2API behavior difference in reading tuning parameters

2011-01-31 Thread Thierry LELEGARD
 From: Andreas Oberritter [mailto:o...@linuxtv.org]
 Sent: Wednesday, January 19, 2011 7:12 PM
 To: Thierry LELEGARD
 Cc: linux-media@vger.kernel.org; Devin Heitmueller
 Subject: Re: [linux-media] API V3 vs SAPI behavior difference in reading 
 tuning
 parameters
 
 On 01/19/2011 06:03 PM, Thierry LELEGARD wrote:
  OK, then what? Is the S2API behavior (returning cached - but incorrect - 
  tuning
  parameter values) satisfactory for everyone or shall we adapt S2API to 
  mimic the
  API V3 behavior (return the actual tuning parameter values as automatically
  adjusted by the driver)?
 
 To quote myself:
 
 if that's still the case in Git (I didn't verify), then it should indeed
 be changed to behave like v3 does. Would you mind to submit a patch, please?
 
 I haven't heard any objections, so just go on if you want. Otherwise I
 might prepare a patch once time permits.
 
 Regards,
 Andreas

Sorry for the late follow-up due to busy projects.

Yes, the latest git suffers from the same problem. The values returned
by FE_GET_PROPERTY (S2API) are sometimes wrong while the values returned
by FE_GET_FRONTEND (API V3) are correct, or at least as correct as the
driver can say.

Looking at the code in dvb_frontend.c, the reasons are pretty obvious.
FE_GET_PROPERTY directly returns cached values (at S2API level) while
FE_GET_FRONTEND asks the driver to return values. When the application
sends auto values (xxx_AUTO) or even wrong values that the driver is
able to correct, FE_GET_PROPERTY returns the same auto or wrong values
while FE_GET_FRONTEND returns the values that the driver has discovered
or decided to apply.

FE_GET_PROPERTY returning only cached values:

static int dtv_property_process_get(struct dvb_frontend *fe,
struct dtv_property *tvp,
struct file *file)
{
int r = 0;

/* Allow the frontend to validate incoming properties */
if (fe-ops.get_property)
r = fe-ops.get_property(fe, tvp);

if (r  0)
return r;

switch(tvp-cmd) {
case DTV_FREQUENCY:
tvp-u.data = fe-dtv_property_cache.frequency;
break;
case DTV_MODULATION:
tvp-u.data = fe-dtv_property_cache.modulation;
break;
case DTV_BANDWIDTH_HZ:
tvp-u.data = fe-dtv_property_cache.bandwidth_hz;
break;
...etc...

FE_GET_FRONTEND asking the driver to return its own values:

static int dvb_frontend_ioctl_legacy(struct file *file,
unsigned int cmd, void *parg)
{
...etc...
case FE_GET_FRONTEND:
if (fe-ops.get_frontend) {
memcpy (parg, fepriv-parameters, sizeof (struct 
dvb_frontend_parameters));
err = fe-ops.get_frontend(fe, (struct 
dvb_frontend_parameters*) parg);
}
break;
...etc...

How to fix this?

For legacy drivers, it is still possible to invoke driver's get_frontend
to get the correct values in a struct dvb_frontend_parameters. But, for
new drivers and new protocols for which some properties cannot be emulated
in a struct dvb_frontend_parameters, I do not see any driver callback to
ask for the value of a property. The callback get_property seems to be
here to validate the usage of a property in the driver's context. As you
can see, dtv_property_process_get simply checks the returned value but
ignore a possible update of the struct dtv_property. Moreover, I have
checked the code of a few drivers implementing get_property and the
general idea is usually simply return 0.

I do think that this problem is a functional regression from API V3 for
most users. But I do not see an obvious and general way of fixing it.
Any idea ?

Best regards,
-Thierry
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[linux-media] API V3 vs SAPI behavior difference in reading tuning parameters

2011-01-14 Thread Thierry LELEGARD
Dear all,

I would like to report an annoying behavior difference between S2API and the
legacy DVB API (V3) when _reading_ the current tuning configuration.

In short, API V3 is able to report the _actual_ tuning parameters as used by
the driver and corresponding to the actual broadcast steam. On the other hand,
S2API reports cached values which were specified in the tuning operation and
these values may be generic (*_AUTO symbols) or even wrong.

Logically, it seems that the difference is located in the API and not in the 
driver.

Here is the configuration I test:

Kernel 2.6.35.10-74.fc14.i686 (Fedora 14)
Hauppauge WinTV-Nova-T-500 (dual DVB-T, DiBcom 3000MC/P)

I tune to a frequency and let many parameters to their *_AUTO value:
  DTV_TRANSMISSION_MODE
  DTV_GUARD_INTERVAL
  DTV_CODE_RATE_HP
  DTV_CODE_RATE_LP

The tuning is performed correctly and reception is effective. The tuner finds
the right parameters.

With API V3, after reading the frontend state (FE_GET_FRONTEND), the returned
values are correct. I can see that actual code rate HP is 3/4, LP 1/2,
transmission mode 8K and guard interval 1/8.

However, on the same machine, after reading the frontend state using S2API
(FE_GET_PROPERTY), all returned values are the *_AUTO values I specified
while tuning.

But there is worse. If I set a wrong parameter in the tuning operation,
for instance guard interval 1/32, the API V3 returns the correct value
which is actually used by the tuner (GUARD_INTERVAL_1_8), while S2API
returns the cached value which was set while tuning (GUARD_INTERVAL_1_32).

So, the driver is able 1) to find the correct actual parameter and 2) to
report this actual value since API V3 returns it.

But it seems that API V3 returns the actual tuning parameter as used by the
driver while S2API returns a cached value which was used while tuning.

This seems an annoying regression. An application is no longer able to
determine the modulation parameter of an actual stream.

As a final note, there is no difference if the tuning operation is performed
using API V3 or S2API, the difference is only in the reading operation
(FE_GET_FRONTEND vs. FE_GET_PROPERTY).

Best regards,
-Thierry

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [linux-media] API V3 vs SAPI behavior difference in reading tuning parameters

2011-01-14 Thread Thierry LELEGARD
 -Original Message-
 From: Andreas Oberritter [mailto:o...@linuxtv.org]
 Sent: Friday, January 14, 2011 5:32 PM


 Albeit, DVB-SI data isn't perfect and misconfiguration at the
 transmitter happens (e.g. wrong FEC values), especially where most of
 the parameters are signaled in-band (e.g. TPS for DVB-T). It's a better
 user experience if the reception continues to work, even if the user
 didn't specify AUTO.

Exactly. In the French DVB-T network, there is no regional NIT, only one
common national NIT. As a consequence, all tuning parameters (frequency
but also FEC, guard interval, etc) are wrong in the terrestrial delivery
descriptors because for a given TS they are obviously not identical on all
transmitters. Moreover, these parameters change over time (many transmitters
recently moved from 2/3 - 1/32 to 3/4 - 1/8).

In such networks, nobody knows for sure the modulation parameters. This is
why it is a good thing that the tuners can 1) find the actual parameters and
2) report them to the application whenever it requests them.

 I'd rather understand non-AUTO parameters that way: Try these first,
 but if you want and if you can, you're free to try other parameters.

Exactly, for the same reasons as above.

This is why the new behavior of S2API (compared to API V3) is quite unfortunate.
On a pragmatic standpoint, this is really a major step backward.

-Thierry

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [linux-dvb] new DVB-T initial tuning for fr-nantes

2010-05-20 Thread Thierry LELEGARD
 One thing that would be good to do -- for someone who is in the
 area served by a transmitter -- rather than use «AUTO» for the
 FEC and Guard Interval values above, would be to perform a NIT
 scan on the appropriate frequencies.
 
 This should give as a result the actual transmitter frequency
 and other parameters in use, and perhaps related ones from other
 sites.
 
 These values are configured by the broadcaster and are therefore
 not guaranteed to be 100% accurate, but it is more likely that
 they know the values they are using -- these values can be used
 to locate other transmitter frequencies, as is the well-known
 case for DVB-S satellite NIT tables.

Unfortunately, the terrestrial delivery descriptors are completely
wrong in the NIT of the French terrestrial network. The NIT is the
same all over the country, which is not appropriate in a terrestrial
network, and the frequency, FEC and guard interval are wrong. The
same TS will have distinct frequencies (of course) on different
transmitters but also distinct FEC and guard interval (actually,
two combinations are used: either 2/3  1/32 or 3/4  1/8).

Recently, many transmitters have changed the modulation parameters
while staying on the same frequency. It is very difficult to keep
up to date. Between the moment when you submit a patch with the
new parameters and the moment you get the file in your distro,
the parameters may have changed again.

I think that in such a moving environment, the AUTO choice is
definitely better.

-Thierry

N�r��yb�X��ǧv�^�)޺{.n�+{���bj)w*jg����ݢj/���z�ޖ��2�ޙ�)ߡ�a�����G���h��j:+v���w��٥

RE: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)

2010-05-11 Thread Thierry LELEGARD
I finally gave up using this card. I replaced it with an old
Hauppauge WinTV Nova-S in the same PCI slot and the same transponder
is received fine. No discontinuity is observed. Using the Nova-HD-S2
in the same PCI slot, on the same transponder, gave a lot of
discontinuities, correlated with the pci_abort errors.

I think that the Hauppauge WinTV Nova-HD-S2 should be marked as
partially supported only since it seems to work fine on some
systems and poorly in other systems (mine).

-Thierry

 De : linux-media-ow...@vger.kernel.org 
 [mailto:linux-media-ow...@vger.kernel.org] De la part de
 Thierry LELEGARD
 Envoyé : vendredi 7 mai 2010 15:49
 À : linux-media@vger.kernel.org
 Objet : RE: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)
 
 Without knowing if this is appropriate or not, as a test, I replaced
 the 3 occurrences of IRQF_SHARED | IRQF_DISABLED by simply IRQF_SHARED
 in cx88 driver.
 
 The number of pci_abort was considerably reduced but I still get some.
 
 Again, this was just a try, not a patch proposal. And it seems not to
 be a final solution, but it just changed the behavior a little bit.
 
 Any other idea ?
 
 -Thierry
 
  -Message d'origine-
  De : linux-media-ow...@vger.kernel.org 
  [mailto:linux-media-ow...@vger.kernel.org] De la part de
  Thierry LELEGARD
  Envoyé : vendredi 7 mai 2010 11:38
  À : Paul Shepherd; linux-media@vger.kernel.org
  Objet : RE: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)
 
  Hi,
 
  The firmware version can be seen using dmesg the first time
  the tuner is actually used after power up. From dmesg:
 
  cx24116_firmware_ondemand: Waiting for firmware upload 
  (dvb-fe-cx24116.fw)...
  cx88-mpeg driver manager :05:05.2: firmware: requesting 
  dvb-fe-cx24116.fw
  cx24116_firmware_ondemand: Waiting for firmware upload(2)...
  cx24116_load_firmware: FW version 1.26.90.0
  cx24116_firmware_ondemand: Firmware upload complete
 
  By removing or swapping cards on the PCI bus, I can see that
  the number of cx88[0]: irq mpeg [0x8] pci_abort varies.
  From once every 10 seconds, at best, to once per second, at
  worst.
 
  The following message can be interesting:
  IRQ 17/cx88[0]: IRQF_DISABLED is not guaranteed on shared IRQs
 
  After some googling, I saw messages mentioning that this kind
  of message can be the symptom of unexpected behaviors. Could
  this explain the pci_abort ?
 
  Also, some messages suggest that a driver code should not
  request both IRQF_DISABLED and IRQF_SHARED. In the complete
  v4l-dvb source code, this combination is found only 20 times,
  in 12 drivers, including the cx88.
 
  Could this be a problem in the driver ?
 
  -Thierry
 
   -Message d'origine-
   De : Paul Shepherd [mailto:p...@whitelands.org.uk]
   Envoyé : jeudi 6 mai 2010 20:59
   À : linux-media@vger.kernel.org
   Cc : Thierry LELEGARD
   Objet : Re: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)
  
  
   On 06/05/2010 16:01, Thierry LELEGARD wrote:
  
   
I recently added a Hauppauge WinTV Nova-HD-S2 into a Linux system.
I experience frequent packet loss and pci_abort errors.
   
Each time my application detects packet loss (continuity errors
actually), I get the following messages in dmesg:
   
cx88[0]: irq mpeg  [0x8] pci_abort*
cx88[0]/2-mpeg: general errors: 0x0008
   
Such problems occur every few seconds.
   
I use firmware file dvb-fe-cx24116.fw version 1.26.90.0.
   
Since the IRQ was shared with the nVidia card and a Dektec modulator,
I swapped some PCI boards. The IRQ is still shared but with another
Tuner I do not use when using the S2 tuner. After swapping the PCI
boards, the errors occur less frequently but still happen.
   
Assuming that the pci_abort was due to an interrupted DMA transfer, I
tried to increase the PCI latency timer of the device to 248 but this
did not change anything (setpci -s 05:05 latency_timer=f8).
   
I use the tuner with a custom application which reads the complete
Transport stream. This application had worked for years using DVB-T
and DVB-S tuners. I tried to reduce the application read buffer
input size and it did not change anything at all.
   
Note that my application still uses the V3 API, not the S2API. But,
using DVB-S transponders, it works (except the pci_abort errors).
   
I disabled the serial port, the parallel port and the PS/2 ports in the
BIOS. It did not change anything either.
   
Does anyone have an idea, please?
Thanks a lot in advance for any help.
-Thierry
  
   I have the board working in a Ubuntu 9.10 system, log below shows no pci
   errors:
  
Apr 21 18:32:11 antec300 kernel: [   16.576416] cx88/2: cx2388x MPEG-TS 
Driver Manager version
  0.0.7
   loaded
Apr 21 18:32:11 antec300 kernel: [   16.576711] cx88[0]: subsystem: 
0070:6906, board: Hauppauge
   WinTV-HVR4000(Lite) DVB-S/S2 [card=69,autodetected], frontend(s): 1
Apr 21 18:32:11 antec300

RE: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)

2010-05-07 Thread Thierry LELEGARD
Hi,

The firmware version can be seen using dmesg the first time
the tuner is actually used after power up. From dmesg:

cx24116_firmware_ondemand: Waiting for firmware upload (dvb-fe-cx24116.fw)...
cx88-mpeg driver manager :05:05.2: firmware: requesting dvb-fe-cx24116.fw
cx24116_firmware_ondemand: Waiting for firmware upload(2)...
cx24116_load_firmware: FW version 1.26.90.0
cx24116_firmware_ondemand: Firmware upload complete

By removing or swapping cards on the PCI bus, I can see that
the number of cx88[0]: irq mpeg [0x8] pci_abort varies.
From once every 10 seconds, at best, to once per second, at
worst.

The following message can be interesting:
IRQ 17/cx88[0]: IRQF_DISABLED is not guaranteed on shared IRQs

After some googling, I saw messages mentioning that this kind
of message can be the symptom of unexpected behaviors. Could
this explain the pci_abort ?

Also, some messages suggest that a driver code should not
request both IRQF_DISABLED and IRQF_SHARED. In the complete
v4l-dvb source code, this combination is found only 20 times,
in 12 drivers, including the cx88. 

Could this be a problem in the driver ?

-Thierry

 -Message d'origine-
 De : Paul Shepherd [mailto:p...@whitelands.org.uk]
 Envoyé : jeudi 6 mai 2010 20:59
 À : linux-media@vger.kernel.org
 Cc : Thierry LELEGARD
 Objet : Re: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)
 
 
 On 06/05/2010 16:01, Thierry LELEGARD wrote:
 
 
  I recently added a Hauppauge WinTV Nova-HD-S2 into a Linux system.
  I experience frequent packet loss and pci_abort errors.
 
  Each time my application detects packet loss (continuity errors
  actually), I get the following messages in dmesg:
 
  cx88[0]: irq mpeg  [0x8] pci_abort*
  cx88[0]/2-mpeg: general errors: 0x0008
 
  Such problems occur every few seconds.
 
  I use firmware file dvb-fe-cx24116.fw version 1.26.90.0.
 
  Since the IRQ was shared with the nVidia card and a Dektec modulator,
  I swapped some PCI boards. The IRQ is still shared but with another
  Tuner I do not use when using the S2 tuner. After swapping the PCI
  boards, the errors occur less frequently but still happen.
 
  Assuming that the pci_abort was due to an interrupted DMA transfer, I
  tried to increase the PCI latency timer of the device to 248 but this
  did not change anything (setpci -s 05:05 latency_timer=f8).
 
  I use the tuner with a custom application which reads the complete
  Transport stream. This application had worked for years using DVB-T
  and DVB-S tuners. I tried to reduce the application read buffer
  input size and it did not change anything at all.
 
  Note that my application still uses the V3 API, not the S2API. But,
  using DVB-S transponders, it works (except the pci_abort errors).
 
  I disabled the serial port, the parallel port and the PS/2 ports in the
  BIOS. It did not change anything either.
 
  Does anyone have an idea, please?
  Thanks a lot in advance for any help.
  -Thierry
 
 I have the board working in a Ubuntu 9.10 system, log below shows no pci
 errors:
 
  Apr 21 18:32:11 antec300 kernel: [   16.576416] cx88/2: cx2388x MPEG-TS 
  Driver Manager version 0.0.7
 loaded
  Apr 21 18:32:11 antec300 kernel: [   16.576711] cx88[0]: subsystem: 
  0070:6906, board: Hauppauge
 WinTV-HVR4000(Lite) DVB-S/S2 [card=69,autodetected], frontend(s): 1
  Apr 21 18:32:11 antec300 kernel: [   16.576714] cx88[0]: TV tuner type -1, 
  Radio tuner type -1
  Apr 21 18:32:11 antec300 kernel: [   16.583565] cx88/0: cx2388x v4l2 driver 
  version 0.0.7 loaded
  Apr 21 18:32:11 antec300 kernel: [   16.586270] cx2388x alsa driver version 
  0.0.7 loaded
  Apr 21 18:32:11 antec300 kernel: [   16.605679] EXT4-fs (sda1): internal 
  journal on sda1:8
  Apr 21 18:32:11 antec300 kernel: [   16.755834] EXT4-fs (sdc1): barriers 
  enabled
  Apr 21 18:32:11 antec300 kernel: [   16.757791] kjournald2 starting: pid 
  956, dev sdc1:8, commit
 interval 5 seconds
  Apr 21 18:32:11 antec300 kernel: [   16.763057] EXT4-fs (sdc1): internal 
  journal on sdc1:8
  Apr 21 18:32:11 antec300 kernel: [   16.763061] EXT4-fs (sdc1): delayed 
  allocation enabled
  Apr 21 18:32:11 antec300 kernel: [   16.763063] EXT4-fs: file extents 
  enabled
  Apr 21 18:32:11 antec300 kernel: [   16.789147] EXT4-fs: mballoc enabled
  Apr 21 18:32:11 antec300 kernel: [   16.789163] EXT4-fs (sdc1): mounted 
  filesystem with ordered data
 mode
  Apr 21 18:32:11 antec300 kernel: [   16.795868] tveeprom 2-0050: Hauppauge 
  model 69100, rev B4C3,
 serial# 7084390
  Apr 21 18:32:11 antec300 kernel: [   16.795871] tveeprom 2-0050: MAC 
  address is 00:0d:fe:6c:19:66
  Apr 21 18:32:11 antec300 kernel: [   16.795874] tveeprom 2-0050: tuner 
  model is Conexant CX24118A
 (idx 123, type 4)
  Apr 21 18:32:11 antec300 kernel: [   16.795876] tveeprom 2-0050: TV 
  standards ATSC/DVB Digital
 (eeprom 0x80)
  Apr 21 18:32:11 antec300 kernel: [   16.795878] tveeprom 2-0050: audio 
  processor is None (idx 0)
  Apr 21 18:32:11 antec300 kernel

RE: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)

2010-05-07 Thread Thierry LELEGARD
Without knowing if this is appropriate or not, as a test, I replaced
the 3 occurrences of IRQF_SHARED | IRQF_DISABLED by simply IRQF_SHARED
in cx88 driver.

The number of pci_abort was considerably reduced but I still get some.

Again, this was just a try, not a patch proposal. And it seems not to
be a final solution, but it just changed the behavior a little bit.

Any other idea ?

-Thierry

 -Message d'origine-
 De : linux-media-ow...@vger.kernel.org 
 [mailto:linux-media-ow...@vger.kernel.org] De la part de
 Thierry LELEGARD
 Envoyé : vendredi 7 mai 2010 11:38
 À : Paul Shepherd; linux-media@vger.kernel.org
 Objet : RE: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)
 
 Hi,
 
 The firmware version can be seen using dmesg the first time
 the tuner is actually used after power up. From dmesg:
 
 cx24116_firmware_ondemand: Waiting for firmware upload (dvb-fe-cx24116.fw)...
 cx88-mpeg driver manager :05:05.2: firmware: requesting dvb-fe-cx24116.fw
 cx24116_firmware_ondemand: Waiting for firmware upload(2)...
 cx24116_load_firmware: FW version 1.26.90.0
 cx24116_firmware_ondemand: Firmware upload complete
 
 By removing or swapping cards on the PCI bus, I can see that
 the number of cx88[0]: irq mpeg [0x8] pci_abort varies.
 From once every 10 seconds, at best, to once per second, at
 worst.
 
 The following message can be interesting:
 IRQ 17/cx88[0]: IRQF_DISABLED is not guaranteed on shared IRQs
 
 After some googling, I saw messages mentioning that this kind
 of message can be the symptom of unexpected behaviors. Could
 this explain the pci_abort ?
 
 Also, some messages suggest that a driver code should not
 request both IRQF_DISABLED and IRQF_SHARED. In the complete
 v4l-dvb source code, this combination is found only 20 times,
 in 12 drivers, including the cx88.
 
 Could this be a problem in the driver ?
 
 -Thierry
 
  -Message d'origine-
  De : Paul Shepherd [mailto:p...@whitelands.org.uk]
  Envoyé : jeudi 6 mai 2010 20:59
  À : linux-media@vger.kernel.org
  Cc : Thierry LELEGARD
  Objet : Re: cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)
 
 
  On 06/05/2010 16:01, Thierry LELEGARD wrote:
 
  
   I recently added a Hauppauge WinTV Nova-HD-S2 into a Linux system.
   I experience frequent packet loss and pci_abort errors.
  
   Each time my application detects packet loss (continuity errors
   actually), I get the following messages in dmesg:
  
   cx88[0]: irq mpeg  [0x8] pci_abort*
   cx88[0]/2-mpeg: general errors: 0x0008
  
   Such problems occur every few seconds.
  
   I use firmware file dvb-fe-cx24116.fw version 1.26.90.0.
  
   Since the IRQ was shared with the nVidia card and a Dektec modulator,
   I swapped some PCI boards. The IRQ is still shared but with another
   Tuner I do not use when using the S2 tuner. After swapping the PCI
   boards, the errors occur less frequently but still happen.
  
   Assuming that the pci_abort was due to an interrupted DMA transfer, I
   tried to increase the PCI latency timer of the device to 248 but this
   did not change anything (setpci -s 05:05 latency_timer=f8).
  
   I use the tuner with a custom application which reads the complete
   Transport stream. This application had worked for years using DVB-T
   and DVB-S tuners. I tried to reduce the application read buffer
   input size and it did not change anything at all.
  
   Note that my application still uses the V3 API, not the S2API. But,
   using DVB-S transponders, it works (except the pci_abort errors).
  
   I disabled the serial port, the parallel port and the PS/2 ports in the
   BIOS. It did not change anything either.
  
   Does anyone have an idea, please?
   Thanks a lot in advance for any help.
   -Thierry
 
  I have the board working in a Ubuntu 9.10 system, log below shows no pci
  errors:
 
   Apr 21 18:32:11 antec300 kernel: [   16.576416] cx88/2: cx2388x MPEG-TS 
   Driver Manager version
 0.0.7
  loaded
   Apr 21 18:32:11 antec300 kernel: [   16.576711] cx88[0]: subsystem: 
   0070:6906, board: Hauppauge
  WinTV-HVR4000(Lite) DVB-S/S2 [card=69,autodetected], frontend(s): 1
   Apr 21 18:32:11 antec300 kernel: [   16.576714] cx88[0]: TV tuner type 
   -1, Radio tuner type -1
   Apr 21 18:32:11 antec300 kernel: [   16.583565] cx88/0: cx2388x v4l2 
   driver version 0.0.7 loaded
   Apr 21 18:32:11 antec300 kernel: [   16.586270] cx2388x alsa driver 
   version 0.0.7 loaded
   Apr 21 18:32:11 antec300 kernel: [   16.605679] EXT4-fs (sda1): internal 
   journal on sda1:8
   Apr 21 18:32:11 antec300 kernel: [   16.755834] EXT4-fs (sdc1): barriers 
   enabled
   Apr 21 18:32:11 antec300 kernel: [   16.757791] kjournald2 starting: pid 
   956, dev sdc1:8, commit
  interval 5 seconds
   Apr 21 18:32:11 antec300 kernel: [   16.763057] EXT4-fs (sdc1): internal 
   journal on sdc1:8
   Apr 21 18:32:11 antec300 kernel: [   16.763061] EXT4-fs (sdc1): delayed 
   allocation enabled
   Apr 21 18:32:11 antec300 kernel: [   16.763063] EXT4-fs: file extents

cx88 pci_abort errors (Hauppauge WinTV Nova-HD-S2)

2010-05-06 Thread Thierry LELEGARD
Hello,
Does anyone experience pci_abort errors with the cx88 driver?
Many thanks
-Thierry


De : linux-media-ow...@vger.kernel.org 
[mailto:linux-media-ow...@vger.kernel.org] De la part de Thierry LELEGARD
Envoyé : mardi 4 mai 2010 16:48
À : linux-...@linuxtv.org; linux-media@vger.kernel.org
Objet : [linux-dvb] pci_abort errors with Hauppauge WinTV Nova-HD-S2 

Hello,

I recently added a Hauppauge WinTV Nova-HD-S2 into a Linux system.
I experience frequent packet loss and pci_abort errors.

Each time my application detects packet loss (continuity errors
actually), I get the following messages in dmesg:

cx88[0]: irq mpeg  [0x8] pci_abort*
cx88[0]/2-mpeg: general errors: 0x0008

Such problems occur every few seconds.

I use firmware file dvb-fe-cx24116.fw version 1.26.90.0.

Since the IRQ was shared with the nVidia card and a Dektec modulator,
I swapped some PCI boards. The IRQ is still shared but with another
Tuner I do not use when using the S2 tuner. After swapping the PCI
boards, the errors occur less frequently but still happen.

Assuming that the pci_abort was due to an interrupted DMA transfer, I
tried to increase the PCI latency timer of the device to 248 but this
did not change anything (setpci -s 05:05 latency_timer=f8).

I use the tuner with a custom application which reads the complete
Transport stream. This application had worked for years using DVB-T
and DVB-S tuners. I tried to reduce the application read buffer
input size and it did not change anything at all.

Note that my application still uses the V3 API, not the S2API. But,
using DVB-S transponders, it works (except the pci_abort errors).

I disabled the serial port, the parallel port and the PS/2 ports in the
BIOS. It did not change anything either.

Does anyone have an idea, please?
Thanks a lot in advance for any help.
-Thierry

PS: some additional information:

# lspci -v -s 05:05
05:05.0 Multimedia video controller: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
Subsystem: Hauppauge computer works Inc. Device 6906
Flags: bus master, medium devsel, latency 248, IRQ 17
Memory at f500 (32-bit, non-prefetchable) [size=16M]
Capabilities: [44] Vital Product Data
Capabilities: [4c] Power Management version 2
Kernel driver in use: cx8800
Kernel modules: cx8800

05:05.1 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI
Video and Audio Decoder [Audio Port] (rev 05)
Subsystem: Hauppauge computer works Inc. Device 6906
Flags: bus master, medium devsel, latency 248, IRQ 17
Memory at f600 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2
Kernel driver in use: cx88_audio
Kernel modules: cx88-alsa

05:05.2 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI
Video and Audio Decoder [MPEG Port] (rev 05)
Subsystem: Hauppauge computer works Inc. Device 6906
Flags: bus master, medium devsel, latency 248, IRQ 17
Memory at f700 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2
Kernel driver in use: cx88-mpeg driver manager
Kernel modules: cx8802

05:05.4 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI
Video and Audio Decoder [IR Port] (rev 05)
Subsystem: Hauppauge computer works Inc. Device 6906
Flags: bus master, medium devsel, latency 248, IRQ 10
Memory at f800 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2

# cat /proc/interrupts
CPU0   CPU1
   0:296  4   IO-APIC-edge  timer
   1:  1  2   IO-APIC-edge  i8042
   8:  1  0   IO-APIC-edge  rtc0
   9:  0  0   IO-APIC-fasteoi   acpi
  16:279 122104   IO-APIC-fasteoi   uhci_hcd:usb4,
uhci_hcd:usb10, HDA Intel, Dta1xx, nvidia
  17:   1863 507353   IO-APIC-fasteoi   uhci_hcd:usb5,
uhci_hcd:usb8, uhci_hcd:usb11, cx88[0], cx88[0], cx88[0]
  18: 130224   8533   IO-APIC-fasteoi   ehci_hcd:usb3,
uhci_hcd:usb9
  22:  0  0   IO-APIC-fasteoi   ehci_hcd:usb1,
uhci_hcd:usb6
  23: 170156246   IO-APIC-fasteoi   ehci_hcd:usb2,
uhci_hcd:usb7
  28:  57235   4517   PCI-MSI-edge  ahci
  29: 69  15965   PCI-MSI-edge  eth0
 NMI:  0  0   Non-maskable interrupts
 LOC:25290232281329   Local timer interrupts
 SPU:  0  0   Spurious interrupts
 PMI:  0  0   Performance monitoring interrupts
 PND:  0  0   Performance pending work
 RES:  42023  29529   Rescheduling interrupts
 CAL:123994   Function call interrupts
 TLB: 150508 136321   TLB shootdowns
 TRM:  0  0   Thermal event interrupts
 THR:  0  0   Threshold APIC interrupts
 MCE:  0  0

[linux-dvb] pci_abort errors with Hauppauge WinTV Nova-HD-S2

2010-05-04 Thread Thierry LELEGARD
Hello,

I recently added a Hauppauge WinTV Nova-HD-S2 into a Linux system.
I experience frequent packet loss and pci_abort errors.

Each time my application detects packet loss (continuity errors
actually),
I get the following messages in dmesg:

cx88[0]: irq mpeg  [0x8] pci_abort*
cx88[0]/2-mpeg: general errors: 0x0008

Such problems occur every few seconds.

I use firmware file dvb-fe-cx24116.fw version 1.26.90.0.

Since the IRQ was shared with the nVidia card and a Dektec modulator,
I swapped some PCI boards. The IRQ is still shared but with another
tuner
I do not use when using the S2 tuner. After swapping the PCI boards,
the errors occur less frequently but still happen.

Assuming that the pci_abort was due to an interrupted DMA transfer, I
tried to increase the PCI latency timer of the device to 248 but this
did not change anything (setpci -s 05:05 latency_timer=f8).

I use the tuner with a custom application which reads the complete
transport
stream. This application had worked for years using DVB-T and DVB-S
tuners.
I tried to reduce the application read buffer input size and it did not
change anything at all.

Note that my application still uses the V3 API, not the S2API. But,
using
DVB-S transponders, it works (except the pci_abort errors).

I disabled the serial port, the parallel port and the PS/2 ports in the
BIOS.
It did not change anything either.

Does anyone have an idea, please?
Thanks a lot in advance for any help.
-Thierry

PS: some additional information:

# lspci -v -s 05:05
05:05.0 Multimedia video controller: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
Subsystem: Hauppauge computer works Inc. Device 6906
Flags: bus master, medium devsel, latency 248, IRQ 17
Memory at f500 (32-bit, non-prefetchable) [size=16M]
Capabilities: [44] Vital Product Data
Capabilities: [4c] Power Management version 2
Kernel driver in use: cx8800
Kernel modules: cx8800

05:05.1 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI
Video and Audio Decoder [Audio Port] (rev 05)
Subsystem: Hauppauge computer works Inc. Device 6906
Flags: bus master, medium devsel, latency 248, IRQ 17
Memory at f600 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2
Kernel driver in use: cx88_audio
Kernel modules: cx88-alsa

05:05.2 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI
Video and Audio Decoder [MPEG Port] (rev 05)
Subsystem: Hauppauge computer works Inc. Device 6906
Flags: bus master, medium devsel, latency 248, IRQ 17
Memory at f700 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2
Kernel driver in use: cx88-mpeg driver manager
Kernel modules: cx8802

05:05.4 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI
Video and Audio Decoder [IR Port] (rev 05)
Subsystem: Hauppauge computer works Inc. Device 6906
Flags: bus master, medium devsel, latency 248, IRQ 10
Memory at f800 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2

# cat /proc/interrupts
CPU0   CPU1
   0:296  4   IO-APIC-edge  timer
   1:  1  2   IO-APIC-edge  i8042
   8:  1  0   IO-APIC-edge  rtc0
   9:  0  0   IO-APIC-fasteoi   acpi
  16:279 122104   IO-APIC-fasteoi   uhci_hcd:usb4,
uhci_hcd:usb10, HDA Intel, Dta1xx, nvidia
  17:   1863 507353   IO-APIC-fasteoi   uhci_hcd:usb5,
uhci_hcd:usb8, uhci_hcd:usb11, cx88[0], cx88[0], cx88[0]
  18: 130224   8533   IO-APIC-fasteoi   ehci_hcd:usb3,
uhci_hcd:usb9
  22:  0  0   IO-APIC-fasteoi   ehci_hcd:usb1,
uhci_hcd:usb6
  23: 170156246   IO-APIC-fasteoi   ehci_hcd:usb2,
uhci_hcd:usb7
  28:  57235   4517   PCI-MSI-edge  ahci
  29: 69  15965   PCI-MSI-edge  eth0
 NMI:  0  0   Non-maskable interrupts
 LOC:25290232281329   Local timer interrupts
 SPU:  0  0   Spurious interrupts
 PMI:  0  0   Performance monitoring interrupts
 PND:  0  0   Performance pending work
 RES:  42023  29529   Rescheduling interrupts
 CAL:123994   Function call interrupts
 TLB: 150508 136321   TLB shootdowns
 TRM:  0  0   Thermal event interrupts
 THR:  0  0   Threshold APIC interrupts
 MCE:  0  0   Machine check exceptions
 MCP: 16 16   Machine check polls
 ERR:  1
 MIS:  0

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [linux-dvb] Anysee E30 C Plus + MPEG-4?

2009-08-19 Thread Thierry Lelegard
 Pásztor Szilárd:
 With scan -vv I could find the video PIDs
 for the HD channels and indeed they were missing in my channels.conf (values
 were 0) as scan detected them as OTHER, but with a type 0x1b addition with
 which I don't know what to do for the time being...

Stream type 0x1B precisely means AVC / H.264 video stream (cf. ISO 
138181-1:2000/FDAM 3)

Try VLC instead of mplayer. VLC does render H.264 HD video, provided you have a 
(very) good CPU.

-Thierry

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE : Hauppauge Nova-TD-500 vs. T-500

2009-05-20 Thread Thierry Lelegard
I have a few more informations.

1) Sorry for those who don't like top posting, but the initial
description is really too long for good readability of answers.

2) Since the TD-500 contains two aerial inputs instead of one for
the T-500, I plugged in two antenna cables. Then, after some tests,
I realized that this was a source of trouble:
- Two antenna cables = lots of errors (mostly garbage sometimes,
  depending on the frequency).
- Top input only = still many errors but much better on both tuners.
- Bottom input only = got nothing on both tuners.

So, from now on, I use only one antenna cable, in the top aerial input.
Maybe this could be clarified somewhere (unless it is already but I missed it).

3) There are still many uncorrectable errors (TS packets with transport
error indicator set) in the input. The amount of uncorrectable errors is
approximately 0.1% (depending on the frequency), while I do not have any
with the T-500 using the same antenna.

These errors occurs in groups of +/- 50 consecutive packets with TEI set.
Sometimes, in the middle of packets with errors, one packet has TEI clear
but it is still erroneous (invalid PID in this context for instance).

Note: I forgot to mention in the initial post that I set the following option:
options dvb_usb_dib0700 force_lna_activation=1

4) There is apparently a minor but annoying problem in the driver concerning
the ioctl FE_GET_INFO. Its usage requires opening the frontend device in
O_RDWR mode with the TD-500.

Comparison of T-500 vs. TD-500.

a) After boot, before the first tuning, if we open the frontend in O_RDONLY
   more, the ioctl FE_GET_INFO succeeds with the TD-500 and the T-500.

b) While another process uses the frontend for packet reception, the ioctl
   FE_GET_INFO succeeds with the TD-500 and the T-500, with frontend in 
   O_RDONLY mode.

c) After the frontend has been used for packet reception but no other process
   uses it any longer, the ioctl FE_GET_INFO fails with errno no such device
   with TD-500 frontend in O_RDONLY mode. However, the ioctl FE_GET_INFO 
succeeds
   with TD-500 frontend in O_RDWR mode. With the T-500, the ioctl FE_GET_INFO
   succeeds in O_RDONLY mode.

   Using O_RDWR mode for a simple ioctl FE_GET_INFO is a problem since it
   fails with device busy when another process is using it in O_RDWR mode
   for tuning and reception, which is normal.

   I see here two inconsistencies and one annoying feature:
   - Inconsistent behaviour of ioctl FE_GET_INFO in O_RDONLY mode before and
 after the first tuning.
   - Incorrect error no such device because /dev/dvb/adapter0/frontend0
 is still there and useable in O_RDWR mode.
   - Obligation to use O_RDWR mode for reading the characteristics of a device.

-Thierry



 -Message d'origine-
 De : linux-media-ow...@vger.kernel.org 
 [mailto:linux-media-ow...@vger.kernel.org] De la part de 
 Thierry Lelegard
 Envoyé : lundi 18 mai 2009 16:33
 À : linux-media@vger.kernel.org
 Objet : Hauppauge Nova-TD-500 vs. T-500
 
 
 Hello,
 
 Like many others, I have some problems with the Hauppauge Nova-TD-500.
 
 I have been running a Fedora system with one Hauppauge Nova-T-500
 (-T-, with one input connector, not -TD-) quite successfully 
 for 2 years.
 I just built another Fedora system and ordered two T-500 but 
 I actually
 received two TD-500 (the one with two input connectors).
 
 So, I now have another Fedora box with two Hauppauge Nova-TD-500
 and it does not work quite well.
 
 The two systems (the first one with one T-500 and the second one with
 two TD-500) are running the same O/S version, same drivers, 
 same firmware:
 
 - Fedora 10, up-to-date as of 2009-05-17
 - Kernel 2.6.27.21-170.2.56.fc10.i686
 - Latest V4L-DVB mercurial tree, same date
 - Firmware dvb-usb-dib0700-1.20.fw
 
 You will find below some outputs of dmesg, lspci, etc for the two
 systems.
 
 I use custom signal monitoring applications, no TV watching apps.
 The same application is used in both systems, same antenna input
 (roof antenna and wall socket, not the small antenna that comes
 with the cards). The application continuously reads the complete
 transport stream for analysis. From time to time, it tunes to
 some frequency, then another, etc.
 
 With the two TD-500, the 4 adapters are created under /dev/dvb. Using
 them works more or less. As far as I tested now, I do not have any
 reported error, no error message. But the input is not good: many
 packets are corrupted. This does not happen all the time. Sometimes,
 the input is reasonably correct (a few packets seems incorrect)
 and sometimes it is a mess (most packets are incorrect, the result
 of the analysis report many non-existing PIDs, weird content, etc).
 
 I guess that most of you will say most probably an application pb...
 But the same application is working fine with:
 
 1) Linux + Hauppauge Nova-T-500
 2) Linux + Hauppauge Nova-T Stick
 3) Linux + Pinnacle PCTV stick 72e
 4) Windows + the two above sticks
 4

Hauppauge Nova-TD-500 vs. T-500

2009-05-18 Thread Thierry Lelegard
Hello,

Like many others, I have some problems with the Hauppauge Nova-TD-500.

I have been running a Fedora system with one Hauppauge Nova-T-500
(-T-, with one input connector, not -TD-) quite successfully for 2 years.
I just built another Fedora system and ordered two T-500 but I actually
received two TD-500 (the one with two input connectors).

So, I now have another Fedora box with two Hauppauge Nova-TD-500
and it does not work quite well.

The two systems (the first one with one T-500 and the second one with
two TD-500) are running the same O/S version, same drivers, same firmware:

- Fedora 10, up-to-date as of 2009-05-17
- Kernel 2.6.27.21-170.2.56.fc10.i686
- Latest V4L-DVB mercurial tree, same date
- Firmware dvb-usb-dib0700-1.20.fw

You will find below some outputs of dmesg, lspci, etc for the two
systems.

I use custom signal monitoring applications, no TV watching apps.
The same application is used in both systems, same antenna input
(roof antenna and wall socket, not the small antenna that comes
with the cards). The application continuously reads the complete
transport stream for analysis. From time to time, it tunes to
some frequency, then another, etc.

With the two TD-500, the 4 adapters are created under /dev/dvb. Using
them works more or less. As far as I tested now, I do not have any
reported error, no error message. But the input is not good: many
packets are corrupted. This does not happen all the time. Sometimes,
the input is reasonably correct (a few packets seems incorrect)
and sometimes it is a mess (most packets are incorrect, the result
of the analysis report many non-existing PIDs, weird content, etc).

I guess that most of you will say most probably an application pb...
But the same application is working fine with:

1) Linux + Hauppauge Nova-T-500
2) Linux + Hauppauge Nova-T Stick
3) Linux + Pinnacle PCTV stick 72e
4) Windows + the two above sticks
4) Windows + Terratec Cinergy T USB XE Rev 2 (not supported on Linux)

Of course, on Windows, the input module is a custom DirectShow capture
filter instead of Linux DVB API but the rest of the application is identical.

Another weird behaviour: After running the monitoring application,
ioctl (frontend_fd, FE_GET_INFO, ...) returns No such device errno.
Example:

1) Run tool to get dvb device info, ie. ioctl FE_GET_INFO, right
   after system boot:

/dev/dvb/adapter0 (DiBcom 7000PC, DVB-T)

  Status:

  Bit error rate . 2,097,151 (0%)
  Signal/noise ratio . 0 (0%)
  Signal strength  0 (0%)
  Uncorrected blocks . 0
  Frequencies:
Current .. 0 Hz
Min . 45,000,000 Hz
Max  860,000,000 Hz
Step  62,500 Hz
Tolerance  0 Hz
  Spectral inversion .. auto
  Bandwidth .. 8-MHz
  FEC (high priority) .. 1/2
  FEC (low priority) ... 1/2
  Constellation ... QPSK
  Transmission mode . 2K
  Guard interval .. 1/32
  Hierarchy ... none

2) Run monitoring application. OK, with corrupted packets.
3) Run previous tool doing ioctl FE_GET_INFO:
error getting info on /dev/dvb/adapter0/frontend0: No such device
Note: this error is reported by ioctl, opening the device is OK.
4) # ls -l /dev/dvb/adapter0/frontend0
crw-rw+ 1 tlelegard video 212, 3 2009-05-18 15:59 
/dev/dvb/adapter0/frontend0
5) Run monitoring application. OK, with corrupted packets.


Is there any new development regarding TD-500 ?
Any test I could make ?

Thanks in advance for your assistance.
-Thierry


-
dmesg - one T-500
-

# dmesg | grep -i -e dvb -e dib
dib0700: loaded with support for 9 different device-types
dvb-usb: found a 'Hauppauge Nova-T 500 Dual DVB-T' in cold state, will try to 
load a firmware
firmware: requesting dvb-usb-dib0700-1.20.fw
dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
dib0700: firmware started successfully.
dvb-usb: found a 'Hauppauge Nova-T 500 Dual DVB-T' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Hauppauge Nova-T 500 Dual DVB-T)
DVB: registering adapter 0 frontend 0 (DiBcom 3000MC/P)...
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Hauppauge Nova-T 500 Dual DVB-T)
DVB: registering adapter 1 frontend 0 (DiBcom 3000MC/P)...
dvb-usb: Hauppauge Nova-T 500 Dual DVB-T successfully initialized and connected.
usbcore: registered new interface driver