From: Gianluca Gennari <gennarone@gmail.com>
To: Hans-Frieder Vogt <hfvogt@gmx.net>, linux-media@vger.kernel.org
Subject: Re: [PATCH 0/3] Support for AF9035/AF9033
Date: Fri, 24 Feb 2012 16:44:49 +0100 [thread overview]
Message-ID: <4F47B071.2080707@gmail.com> (raw)
In-Reply-To: <201202232312.11761.hfvogt@gmx.net>
Il 23/02/2012 23:12, Hans-Frieder Vogt ha scritto:
> Am Donnerstag, 23. Februar 2012 schrieb Gianluca Gennari:
>> Il 22/02/2012 23:20, Hans-Frieder Vogt ha scritto:
>>> I have written a driver for the AF9035 & AF9033 (called af903x), based on
>>> the various drivers and information floating around for these chips.
>>> Currently, my driver only supports the devices that I am able to test.
>>> These are
>>> - Terratec T5 Ver.2 (also known as T6)
>>> - Avermedia Volar HD Nano (A867)
>>>
>>> The driver supports:
>>> - diversity and dual tuner (when the first frontend is used, it is in
>>> diversity mode, when two frontends are used in dual tuner mode)
>>> - multiple devices
>>> - pid filtering
>>> - remote control in NEC and RC-6 mode (currently not switchable, but
>>> depending on device)
>>> - support for kernel 3.1, 3.2 and 3.3 series
>>>
>>> I have not tried to split the driver in a DVB-T receiver (af9035) and a
>>> frontend (af9033), because I do not see the sense in doing that for a
>>> demodulator, that seems to be always used in combination with the very
>>> same receiver.
>>>
>>> The patch is split in three parts:
>>> Patch 1: support for tuner fitipower FC0012
>>> Patch 2: basic driver
>>> Patch 3: firmware
>>>
>>> Hans-Frieder Vogt e-mail: hfvogt <at> gmx .dot. net
>>
>> Hi Hans,
>> thank you for the new af903x driver.
>> A few comments:
>>
>> 1) I think you should set up a git repository with your driver and then
>> send a PULL request to the list; as it is, the first patch is affected
>> by line-wrapping problems so it must be manually edited to be
>> applicable, and the second patch is compressed so it will be ignored by
>> patchwork.
>>
>> 2) There are a couple of small errors in the patches (see my attached
>> patches): in the dvb-usb Makefile, DVB_USB_AF903X must be replaced by
>> CONFIG_DVB_USB_AF903X otherwise the driver will not compile; also, in
>> the dvb_frontend_ops struct, the field info.type should be removed for
>> kernels >= 3.3.0.
>>
>> 3) The USB VID/PID IDs should be moved into dvb-usb-ids.h (see patch 3);
>> I also added a few IDs from the Avermedia A867 driver*. As your driver
>> supports both AF9007 and mxl5007t tuners I think this is safe.
>>
>> *http://www.avermedia.com/Support/DownloadCount.aspx?FDFId=4591
>>
>> 4) the driver also looks for a firmware file called "af35irtbl.bin" that
>> comes from the "official" ITEtech driver (if it's not present the driver
>> works anyway, but it prints an error message);
>>
>> I tested the driver with an Avermedia A867 stick (it's an OEM stick also
>> known as the Sky Italia Digital Key with blue led: 07ca:a867) on a
>> Ubuntu 10.04 system with kernel 2.6.32-38-generic-pae and the latest
>> media_build tree installed.
>>
>> The good news:
>> the driver loads properly, and, using Kaffeine, I could watch several
>> channels with a small portable antenna; I could also perform a full
>> frequency scan, finding several UHF and VHF stations. Signal strength
>> and SNR reports works really well, and they seems to give a "realistic"
>> figure of the signal quality (with both the portable and the rooftop
>> antenna).
>> When the stick is unplugged from the USB port, the driver unloads properly.
>>
>> The bad news:
>> the driver seems to "lock" the application when it tries to tune a weak
>> channel: in this cases, Kaffeine becomes unresponsive and sometimes it
>> gives a stream error; for the same reason, the full scan fails to find
>> all stations and takes a long time to complete.
>> Also, when I tried to extract the stick from the USB port during one of
>> this "freezing" periods, the system crashed :-(
>> I reproduced this bug 3 times, and the last time I was able to see a
>> kernel dump for a moment: the function that crashed the kernel was
>> "af903x_streaming_ctrl".
>> Neither of those issues are present with the Avermedia A867 original
>> driver or Antti Palosaari's af9035 driver modified to support the A867
>> stick.
>>
>> I hope this feedback will be useful to improve the driver.
>>
>> Best regards,
>> Gianluca Gennari
>
> Gianluca,
>
> thanks very much for your comments and patches. I will try the patches over
> the weekend.
>
> With respect to your comment about the locking: I suspect this is because I
> have used quite a lot of mutex locks. In particular the dual tuner stick
> behaves very sensitive to any code changes and I have fought for months (no
> joke) to get it working reasonably well (besides the bad reception problems).
> A lot of the complexity in the driver is for the dual tuner and to support the
> diversity feature.
Hi Hans,
I'm not an expert on this kind of problems, so take this further
comments with a grain of salt.
I see you always use mutex_lock(), while both the it913x driver and
Antti's af9035 driver are often using mutex_lock_interruptible() and
returning -EAGAIN when the lock request is interrupted. Could this be
the reason of the kernel crash when the stick is unplugged from the USB
port?
Moreover, you are requesting a mutex lock even for functions that are
just reading a bunch of registers (for example, to get the status or the
SNR/signal strength values). Is this really necessary? I guess this is
what is making Kaffeine unresponsive while the driver is struggling to
tune a weak channel.
Finally, I noticed that af903x_set_bus_tuner() is just setting up the
tuner_desc data structure. Is a mutex_lock really necessary in this
function?
A possible small bug: af903x_streaming_ctrl is always returning 0. I
think it should be returning "ret" in case of errors.
> As to the af35irtbl.bin firmware: this is something I just copied from previous
> drivers. I will probably just throw it out, because, as you also saw, it is
> not needed (only needed for the HID mode of the remote control).
>
> Thanks very much for your input!
>
> Regards,
>
> Hans-Frieder Vogt e-mail: hfvogt <at> gmx .dot. net
>
Thank you for your effort.
Regards,
Gianluca
next prev parent reply other threads:[~2012-02-24 15:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-22 22:20 [PATCH 0/3] Support for AF9035/AF9033 Hans-Frieder Vogt
2012-02-23 9:19 ` Oliver Schinagl
2012-02-23 22:02 ` Hans-Frieder Vogt
2012-02-24 10:04 ` Oliver Schinagl
2012-02-24 10:22 ` Oliver Schinagl
2012-02-25 23:42 ` Hans-Frieder Vogt
2012-02-23 16:40 ` Gianluca Gennari
2012-02-23 22:12 ` Hans-Frieder Vogt
2012-02-24 15:44 ` Gianluca Gennari [this message]
2012-02-23 17:59 ` Antti Palosaari
2012-02-23 22:28 ` Hans-Frieder Vogt
2012-02-24 3:46 ` Antti Palosaari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F47B071.2080707@gmail.com \
--to=gennarone@gmail.com \
--cc=hfvogt@gmx.net \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox