Scott Reynolds wrote:
On Nov 13, 2007, at 4:42 PM, Hans Verkuil wrote:
I heard more reports about compatibility problems and I traced it to
some recent videodev changes that break compatibility for kernels <
2.6.19. So in order to test this you need a kernel >- 2.6.19.
I looked into this last week and I'm pretty confident this is just a
bogus version test. If you look at the lines near the errors
mentioned, you'll see a check for kernel 2.6.13; however, struct class
didn't gain .dev_attrs, and hadn't renamed .release to .dev_release,
until 2.6.19.
If you change both #if LINUX_VERSION_CODE lines from 13 to 19 you'll
get it to compile (with a warning), but there will be another error
v4l1-compat.c that I'm not entirely sure of how to handle. At least on
my system it chokes on the __pure attribute to palette_to_pixelformat().
The patch I used to get the latest v4l-dvb to compile is appended. It
seems to work for me but I can't guarantee its correctness, YMMV, etc.
--scott
diff -r b9523a14ccea linux/drivers/media/video/v4l1-compat.c
--- a/linux/drivers/media/video/v4l1-compat.c Sun Nov 04 14:34:05 2007
-0200
+++ b/linux/drivers/media/video/v4l1-compat.c Wed Nov 07 00:00:45 2007
-0600
@@ -145,7 +145,7 @@ const static unsigned int palette2pixelf
[VIDEO_PALETTE_YUV422P] = V4L2_PIX_FMT_YUV422P,
};
-static unsigned int __pure
+static unsigned int /* __pure */
palette_to_pixelformat(unsigned int palette)
{
if (palette < ARRAY_SIZE(palette2pixelformat))
diff -r b9523a14ccea linux/drivers/media/video/videodev.c
--- a/linux/drivers/media/video/videodev.c Sun Nov 04 14:34:05 2007
-0200
+++ b/linux/drivers/media/video/videodev.c Tue Nov 06 19:31:57 2007
-0600
@@ -111,7 +111,7 @@ static void video_release(struct device
vfd->release(vfd);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
static struct device_attribute video_device_attrs[] = {
__ATTR(name, S_IRUGO, show_name, NULL),
__ATTR_NULL
@@ -120,7 +120,7 @@ static struct device_attribute video_dev
static struct class video_class = {
.name = VIDEO_NAME,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
.release = video_release,
#else
.dev_attrs = video_device_attrs,
I used this patch and managed to get the modules to compile and load
on my 2.6.18 debian/etch kernel. However, I have a question. Will
these modules now load in a deterministic manner? For instance,
on this box I have a PVR-150, a air2PC card, an Avermedia A180,
and a DVICO pcHDTV RT5 lite. My issue is that in myth, I need to
assign the proper /dev/device to the proper capture device.
To get around that with previous versions, I had some custom rules in
hotplug/udev that would create custom aliases, such as /dev/ivtv0,
/dev/bttv_vid0. However, this release has broken the mechanism that
created my /dev/ivtv0, so mythtv isn't happy.
Will all devices load and create /dev/video* in the same order all the time,
or is it still up in the air as to which device will create which
/dev/video*, based upon who's faster today????
This is a long outstanding issue with udev/hotplug, but someone needs to
fix it, if they can figure out how.
Linux video capture interface: v2.00
ts: Compaq touchscreen protocol output
bttv: driver version 0.9.17 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
ACPI: PCI Interrupt Link [APC1] enabled at IRQ 16
ACPI: PCI Interrupt 0000:02:08.0[A] -> Link [APC1] -> GSI 16 (level, low) ->
IRQ 209
bttv0: Bt878 (rev 17) at 0000:02:08.0, irq: 209, latency: 32, mmio: 0xec001000
bttv0: detected: DViCO FusionHDTV 5 Lite [card=135], PCI subsystem ID is
18ac:d500
bttv0: using: DViCO FusionHDTV 5 Lite [card=135,autodetected]
bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
bttv0: tuner type=64
ivtv: Start initialization, version 1.1.0
b2c2-flexcop: B2C2 FlexcopII/II(b)/III digital TV receiver chip loaded
successfully
bt878: Unknown symbol bttv_read_gpio
bt878: Unknown symbol bttv_write_gpio
bt878: Unknown symbol bttv_gpio_enable
tuner' 2-0043: chip found @ 0x86 (bt878 #0 [sw])
tda9887 2-0043: tda988[5/6/7] found @ 0x43 (tuner')
tuner' 2-0061: chip found @ 0xc2 (bt878 #0 [sw])
tuner-simple 2-0061: type set to 64 (LG TDVS-H06xF)
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: add subdevice "dvb0"
ivtv0: Initializing card #0
ivtv0: Autodetected Hauppauge card (cx23416 based)
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:02:0a.0[A] -> Link [APC3] -> GSI 18 (level, low) ->
IRQ 217
ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
tuner' 3-0043: chip found @ 0x86 (ivtv i2c driver #0)
tda9887 3-0043: tda988[5/6/7] found @ 0x43 (tuner')
tuner' 3-0061: chip found @ 0xc2 (ivtv i2c driver #0)
bt878: AUDIO driver version 0.0.0 loaded
tveeprom 3-0050: Hauppauge model 26552, rev B268, serial# 7946856
tveeprom 3-0050: tuner model is LG TAPE H001F MK3 (idx 68, type 47)
tveeprom 3-0050: TV standards NTSC(M) (eeprom 0x08)
tveeprom 3-0050: audio processor is CX25843 (idx 37)
tveeprom 3-0050: decoder processor is CX25843 (idx 30)
tveeprom 3-0050: has radio, has no IR receiver, has no IR transmitter
ivtv0: Autodetected Hauppauge WinTV PVR-150
cx25840' 3-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #0)
wm8775' 3-001b: chip found @ 0x36 (ivtv i2c driver #0)
tuner-simple 3-0061: type set to 43 (Philips NTSC MK3 (FM1236MK3 or FM1236/F))
ivtv0: Registered device video1 for encoder MPG (16384 kB)
ivtv0: Registered device video32 for encoder YUV (2048 kB)
ivtv0: Registered device vbi1 for encoder VBI (1024 kB)
ivtv0: Registered device video24 for encoder PCM (320 kB)
ivtv0: Registered device radio0 for encoder radio
ivtv0: Initialized card #0: Hauppauge WinTV PVR-150
ivtv: End initialization
flexcop-pci: will use the HW PID filter.
flexcop-pci: card revision 2
ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
ACPI: PCI Interrupt 0000:02:09.0[A] -> Link [APC2] -> GSI 17 (level, low) ->
IRQ 225
DVB: registering new adapter (FlexCop Digital TV device)
b2c2-flexcop: MAC address = 00:d0:d7:30:1a:ea
b2c2-flexcop: i2c master_xfer failed
b2c2-flexcop: i2c master_xfer failed
b2c2-flexcop: i2c master_xfer failed
nxt200x: nxt200x_readbytes: i2c read error (addr 0x0a, err == -121)
Unknown/Unsupported NXT chip: 00 00 00 00 00
b2c2-flexcop: i2c master_xfer failed
lgdt330x: i2c_read_demod_bytes: addr 0x59 select 0x02 error (ret == -121)
bcm3510: Revision: 0x1, Layer: 0xb.
b2c2-flexcop: found the bcm3510 at i2c address: 0x0f
DVB: registering frontend 0 (Broadcom BCM3510 VSB/QAM frontend)...
b2c2-flexcop: initialization of 'Air2PC/AirStar 2 ATSC 1st generation' at the
'PCI' bus controlled by a 'FlexCopIIb' complete
bt878: Bt878 AUDIO function found (0).
ACPI: PCI Interrupt 0000:02:08.1[A] -> Link [APC1] -> GSI 16 (level, low) ->
IRQ 209
bt878_probe: card id=[0xd50018ac],[ DViCO FusionHDTV 5 Lite ] has DVB functions.
bt878(0): Bt878 (rev 17) at 02:08.1, irq: 209, latency: 32, memory: 0xec000000
ACPI: PCI Interrupt Link [APCJ] enabled at IRQ 21
ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [APCJ] -> GSI 21 (level, high) ->
IRQ 185
PCI: Setting latency timer of device 0000:00:06.0 to 64
DVB: registering new adapter (bttv0)
DVB: registering frontend 1 (LG Electronics LGDT3303 VSB/QAM Frontend)...
intel8x0_measure_ac97_clock: measured 58648 usecs
intel8x0: clocking to 47049
Adding 1662688k swap on /dev/hda5. Priority:-1 extents:1 across:1662688k
EXT3 FS on hda1, internal journal
i2c_adapter i2c-4: SMBus Quick command not supported, can't probe for chips
i2c /dev entries driver
it87: Found IT8712F chip at 0x290, revision 5
nvidia: module license 'NVIDIA' taints kernel.
ACPI: PCI Interrupt Link [APC5] enabled at IRQ 16
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [APC5] -> GSI 16 (level, low) ->
IRQ 209
NVRM: loading NVIDIA Linux x86 Kernel Module 1.0-8776 Mon Oct 16 21:56:04 PDT
2006
saa7130/34: v4l2 driver version 0.2.14 loaded
ACPI: PCI Interrupt 0000:02:07.0[A] -> Link [APC4] -> GSI 19 (level, low) ->
IRQ 201
saa7130[0]: found at 0000:02:07.0, rev: 1, irq: 201, latency: 32, mmio:
0xf3014000
saa7130[0]: subsystem: 1461:1044, board: AVerMedia AVerTVHD MCE A180
[card=75,insmod option]
saa7130[0]: board init: gpio is 310478
tuner' 5-0061: chip found @ 0xc2 (saa7130[0])
tuner' 5-0063: chip found @ 0xc6 (saa7130[0])
saa7130[0]: i2c eeprom 00: 61 14 44 10 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
saa7130[0]: i2c eeprom 10: 00 ff 86 0f ff 20 00 00 00 00 00 00 00 00 00 00
saa7130[0]: i2c eeprom 20: 01 40 01 02 02 ff 01 03 06 ff 00 10 00 00 00 00
saa7130[0]: i2c eeprom 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
saa7130[0]: i2c eeprom 40: ff 64 00 c2 14 16 ff ff 00 00 00 00 00 00 00 00
saa7130[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: registered device video2 [v4l2]
saa7130[0]: registered device vbi2
nxt200x: NXT2004 Detected
DVB: registering new adapter (saa7130[0])
DVB: registering frontend 2 (Nextwave NXT200X VSB/QAM frontend)...
nxt2004: Waiting for firmware upload (dvb-fe-nxt2004.fw)...
nxt2004: Waiting for firmware upload(2)...
nxt2004: Firmware upload complete
saa7134 ALSA driver for DMA sound loaded
saa7130[0]/alsa: saa7130[0] at 0xf3014000 irq 201 registered as card -1
begin:vcard
fn:Mark Paulus
n:Paulus;Mark
org:MCI;Lec Interfaces / 40419
adr;dom:;;2424 Garden of the Gods Rd;Colorado Springs;CO;80919
email;internet:[EMAIL PROTECTED]
title:Mark Paulus
tel;work:719-535-5578
tel;pager:800-pagemci / 1406052
tel;home:v622-5578
version:2.1
end:vcard
_______________________________________________
ivtv-users mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-users