(Hardware: SAA7134, TDA9887, MT2050, MT352)
tuner-core.c:tuner_probe doesn't auto-detect the MT20xx tuner
saa7134-cards.c:saa7134_board_init2 sets the tuner type for any unknown tunerNormally when saa7134_init runs it calls for the tuner module before calling
saa7134_board_init2, but if compiled in it will silently fail to set the tuner
type because it is run before tuner_probe is called.This used to work ok in 2.6.24, but doesn't in 2.6.26-rc9. I think
c117d05cd4c09342f97ba1c6ef63f0bae3239a39 looks like it could have caused this,
but I haven't tried reverting it.I've tried to use subsys_init for v4l2_i2c_drv_init in include/media/v4l2-i2c-drv.h,
but it seems to have no effect and it's still loaded after saa7134.If I rmmod tuner and modprobe it then it fails to work because saa7134_board_init2
isn't there to set the tuner type - ideally the type should be stored during the
init of saa7134 in such a way that tuner can refer to it when probing for devices
(and saa7134 should still prod tuner for the situation where it's loaded later).Kernel log with both compiled in:
(I've inserted a WARN_ON at the point where saa7134 is about to call
saa7134_i2c_call_clients.)
[ 1.716916] calling videodev_init+0x0/0x7d
[ 1.717030] Linux video capture interface: v2.00
[ 1.717091] initcall videodev_init+0x0/0x7d returned 0 after 0 msecs[ 1.717091] calling ir_init+0x0/0x14
[ 1.717972] initcall ir_init+0x0/0x14 returned 0 after 0 msecs[ 1.718095] calling saa7134_init+0x0/0x4a
[ 1.718095] saa7130/34: v4l2 driver version 0.2.14 loaded
[ 1.718095] ACPI: PCI Interrupt 0000:05:00.0[A] -> Link [LNED] -> GSI 19 (level, low) -> IRQ 19
[ 1.718095] saa7134[0]: found at 0000:05:00.0, rev: 1, irq: 19, latency: 64, mmio: 0xfeaffc00
[ 1.718095] saa7134[0]: subsystem: 11bd:002d, board: Pinnacle PCTV 300i DVB-T + PAL [card=50,autodetected]
[ 1.718104] saa7134[0]: board init: gpio is c806000
[ 1.859741] saa7134[0]: i2c eeprom 00: bd 11 2d 00 f...
Hi,
the analysis is quite well.
Please propose a fix too ;)
Cheers,
Hermann--
If saa7134_init is run before v4l2_i2c_drv_init (tuner),
then saa7134_board_init2 will try to set the tuner type
for devices that don't exist yet. This moves tuner to
before all of the device-specific drivers so that it's
loaded early enough on boot.Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
---
Resend... I accidentally left the git-send-email headers in.Mailman appears to be easily confused too:
http://www.linuxtv.org/pipermail/linux-dvb/2008-July/027205.htmldrivers/media/video/Makefile | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index ecbbfaa..6b0af12 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -18,6 +18,8 @@ ifeq ($(CONFIG_VIDEO_V4L1_COMPAT),y)
obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o
endif+obj-$(CONFIG_VIDEO_TUNER) += tuner.o
+
obj-$(CONFIG_VIDEO_BT848) += bt8xx/
obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o
obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o
@@ -84,8 +86,6 @@ obj-$(CONFIG_VIDEO_HEXIUM_GEMINI) += hexium_gemini.o
obj-$(CONFIG_VIDEO_DPC) += dpc7146.o
obj-$(CONFIG_TUNER_3036) += tuner-3036.o-obj-$(CONFIG_VIDEO_TUNER) += tuner.o
-
obj-$(CONFIG_VIDEOBUF_GEN) += videobuf-core.o
obj-$(CONFIG_VIDEOBUF_DMA_SG) += videobuf-dma-sg.o
obj-$(CONFIG_VIDEOBUF_VMALLOC) += videobuf-vmalloc.o
--
1.5.6.2--
Simon Arlott--
Hi Simon,
the saa713x maintainer after Gerd is actually Hartmut.
He might not have always the time for it immediately, but should have a
copy of what is going on.Actually, these problems are within the build system and should not even
come down to a driver maintainer.The crowd here is used to have some trouble concerning the build, best
was when guys like Trent did watch out for it before we had some impact.Cheers,
--
From cde790c56ffe76f3d0bf6f38d89f4e671a5218c6 Mon Sep 17 00:00:00 2001
From: Simon Arlott <simon@redrum.invalid>
Date: Sun, 13 Jul 2008 19:24:53 +0100
Subject: [PATCH] V4L: Link tuner before saa7134If saa7134_init is run before v4l2_i2c_drv_init (tuner),
then saa7134_board_init2 will try to set the tuner type
for devices that don't exist yet. This moves tuner to
before all of the device-specific drivers so that it's
loaded early enough on boot.Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
---
drivers/media/video/Makefile | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index ecbbfaa..6b0af12 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -18,6 +18,8 @@ ifeq ($(CONFIG_VIDEO_V4L1_COMPAT),y)
obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o
endif+obj-$(CONFIG_VIDEO_TUNER) += tuner.o
+
obj-$(CONFIG_VIDEO_BT848) += bt8xx/
obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o
obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o
@@ -84,8 +86,6 @@ obj-$(CONFIG_VIDEO_HEXIUM_GEMINI) += hexium_gemini.o
obj-$(CONFIG_VIDEO_DPC) += dpc7146.o
obj-$(CONFIG_TUNER_3036) += tuner-3036.o-obj-$(CONFIG_VIDEO_TUNER) += tuner.o
-
obj-$(CONFIG_VIDEOBUF_GEN) += videobuf-core.o
obj-$(CONFIG_VIDEOBUF_DMA_SG) += videobuf-dma-sg.o
obj-$(CONFIG_VIDEOBUF_VMALLOC) += videobuf-vmalloc.o
--
1.5.6.2--
Simon Arlott
--
Thanks a lot for working on it!
I must admit that I have not tested it yet.
Remaining issues are.
#1 users can't set the tuner type anymore,
but the few cases of tuner detection from eeprom we have should
work again for that price.#2 We still don't have any sufficient HDTV support in the kernel ;)
#0 On 2.6.25, without dedicated TV subnorm selection possible anymore
and known auto detection flaws, fixed now, folks should have
complained about it.Interestingly nothing like that happened.
What could that mean?
Cheers,
Hermann--
There are already module parameters to do that... they can be used
DVB-T2? Why is that relevant to this change? My card doesn't even support
I'm not sure what you're asking, but not many people appear to compile
v4l/dvb into the kernel. Lots of function calls still work on--
Simon Arlott
--
They are broken for what I do say during the last three months and a
Sorry for abusing the thread a little, I plan some vacations and try to
dump what I have left in mind.Your card should at least support Australian DVB-T HDTV.
We have some new support for DVB-S in 2.6.26, mostly triple or quad
capable cards, using the dual isl6405 as LNB supply. I would love to see
more feedback here for HDTV usage. (not S2, but for example BBC HDWe have much less testers than previously I believe.
The tda827x still seems not to compile, if tuner customization is not
selected. Likely the isl6405 under frontend customization needs to be
checked too.Thanks again.
Cheers,
Hermann--
| Ingo Molnar | [patch 12/13] syslets: x86: optimized copy_uatom() |
| Greg Kroah-Hartman | [PATCH 017/196] aoechr: Convert from class_device to device |
| Yinghai Lu | Re: 2.6.26, PAT and AMD family 6 |
| Jan Engelhardt | intel iommu (Re: -mm merge plans for 2.6.23) |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Natalie Protasevich | [BUG] New Kernel Bugs |
