Markus Rechberger ha scritto:
On 9/12/07, Valerio Bontempi <[EMAIL PROTECTED]> wrote:
2007/9/12, Markus Rechberger <[EMAIL PROTECTED]>:
Hi,
On 9/12/07, Aidan Thornton <[EMAIL PROTECTED]> wrote:
On 9/12/07, Valerio Bontempi <[EMAIL PROTECTED]> wrote:
I can't load the driver with 2.6.18 because I removed openSuse
10.2some
months ago: I should compile and install this version on Ubuntu in
order
to
try that if needed.
Following I report the /var/log/messages on 2.6.20 using reg_debug=1:
Sep 12 11:05:49 gandalf kernel: [ 1635.788000] em28xx v4l2 driver
version
0.0.1 loaded
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx: device is
attached
to a USB 2.0 bus
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx: you're using
the
experimental/unstable tree from mcentral.de
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx: there's also a
stable tree available but which is limited to
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx: linux <=
2.6.19.2
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx: it's fine to
use
this driver but keep in mind that it will move
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx: to
http://mcentral.de/hg/~mrec/v4l-dvb-kernel
as soon as it's
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx: proved to be
stable
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
settings: 8
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
setting
0, max size= 0
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
setting
1, max size= 0
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
setting
2, max size= 1448
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
setting
3, max size= 2048
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
setting
4, max size= 2304
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
setting
5, max size= 2580
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
setting
6, max size= 2892
Sep 12 11:05:49 gandalf kernel: [ 1635.904000] em28xx #0: Alternate
setting
7, max size= 3072
...snip...
Sep 12 11:05:50 gandalf kernel: [ 1635.952000] EEPROM ID= 0x9567eb1a
Sep 12 11:05:50 gandalf kernel: [ 1635.952000] Vendor/Product ID=
0ccd:0043
Sep 12 11:05:50 gandalf kernel: [ 1635.952000] No audio on board.
Sep 12 11:05:50 gandalf kernel: [ 1635.952000] 500mA max power
Sep 12 11:05:50 gandalf kernel: [ 1635.952000] Table at 0x06,
strings=0x249e, 0x346a, 0x0000
...snip...
Sep 12 11:05:50 gandalf kernel: [ 1635.956000] tuner 2-0061: chip
found @
0xc2 (em28xx #0)
Sep 12 11:05:50 gandalf kernel: [ 1635.960000] attach inform
(default):
detected I2C address c2
Sep 12 11:05:50 gandalf kernel: [ 1635.960000]
/usr/local/src/v4l-dvb-kernel
/v4l/tuner-core.c: setting tuner callback
Sep 12 11:05:50 gandalf kernel: [ 1635.960000]
/usr/local/src/v4l-dvb-kernel/v4l/tuner-core.c: setting
tuner callback
I don't see any sign of the xc3028 driver doing anything here, which
probably isn't a good sign. It doesn't even seem to be getting to the
stage of trying to load the firmware.
yes you're right, could you guys check if tuner-xc3028 is loaded?
lsmod | grep xc3028
Markus
Sep 12 11:05:50 gandalf kernel: [ 1635.972000] em28xx #0: Found
Terratec
Cinergy T XS
Sep 12 11:05:50 gandalf kernel: [ 1635.976000] usbcore: registered
new
interface driver em28xx
Sep 12 11:05:50 gandalf kernel: [ 1636.000000] em2880-dvb.c: DVB Init
There ought to be a GPIO write here, but there isn't. It's probably
related to the problem with the tuner code, since the GPIO write for
your device is triggered by that.
After looking at the code, it looks like, since your card is DVB-T
only, the driver doesn't bother setting up the tuner driver for analog
use. Unfortunately, the em2880-dvb driver uses an analog API
(VIDIOC_INT_S_TUNER_MODE) to get the xc3028 tuner driver to switch
modes (and call back into the em28xx driver to do the GPIO twiddling
that enables the DVB-T demodulator), this is a problem. As a result,
the GPIO twiddling doesn't get done, communication with the DVB-T
demodulator fails and the driver bails out.
Edit em28xx_set_tuner in linux/drivers/media/video/em28xx/em28xx-i2c.c
to remove the "&& dev->dev_modes != EM28XX_DVB" and recompile - things
should work better. (The reason v4l-dvb-experimental-userptr works is
that it's based on an older version of the code before this was
added.)
Sep 12 11:05:50 gandalf kernel: [ 1636.104000] em28xx #0: [ OK] 40 03
00
00
1e 00 01 00 >>> 7f
Sep 12 11:05:50 gandalf kernel: [ 1636.104000] em28xx #0: [ OK] c0 00
00
00
05 00 01 00 <<< 10
Sep 12 11:05:50 gandalf kernel: [ 1636.104000]
FIXME:em28xx_i2c_send_bytes(1e): write failed:
Sep 12 11:05:50 gandalf kernel: [ 1636.104000]
===============================
Sep 12 11:05:50 gandalf kernel: [ 1636.104000] 7f
Sep 12 11:05:50 gandalf kernel: [ 1636.104000]
================================
--
Markus Rechberger
Yes, it is loaded when the driver doesn't work (with the original
linux/drivers/media/video/em28xx/em28xx-i2c.c)
# lsmod | grep xc3028
xc3028_tuner 9984 0
i2c_core 22656 15
i2c_ec,it87,i2c_isa,eeprom,qt1010,mt2060,mt352,zl10353,xc3028_tuner,tvp5150,tuner,nvidia,em28xx,tveeprom,i2c_nforce2
However, changing the driver source as suggested by Aidan makes the driver
to work well.
Now, what do you suggest to do?
Keep the old driver version (userptr) or use the modified one?
ok it's a design bug in the driver, I'll try to fix it up asap. Try to
stick with the userptr driver for that device for a while till the
newer driver comes up.
Markus
I'm happy of being useful for the development of your driver.
Thanks a lot for your support and for developing this driver.
Valerio
_______________________________________________
Em28xx mailing list
[email protected]
http://mcentral.de/mailman/listinfo/em28xx