NetBSD Problem Report #33742
From srp@dirt.tworoads.net Thu Jun 15 19:22:32 2006
Return-Path: <srp@dirt.tworoads.net>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by narn.NetBSD.org (Postfix) with ESMTP id D2D1063B882
for <gnats-bugs@gnats.NetBSD.org>; Thu, 15 Jun 2006 19:22:32 +0000 (UTC)
Message-Id: <200606151921.k5FJLGT1005538@dirt.tworoads.net>
Date: Thu, 15 Jun 2006 12:21:16 -0700 (PDT)
From: srp@tworoads.net
Reply-To: srp@tworoads.net
To: gnats-bugs@NetBSD.org
Subject: Multiple bktr cards and changing PCI latency.
X-Send-Pr-Version: 3.95
>Number: 33742
>Category: kern
>Synopsis: multiple bktr cards may require change in PCI latency.
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: kern-bug-people
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Thu Jun 15 19:25:00 +0000 2006
>Last-Modified: Mon Jun 26 17:15:04 +0000 2006
>Originator: Scott Presnell
>Release: NetBSD 3.0_STABLE
>Organization:
Self
>Environment:
NetBSD 3.0_STABLE (SKOK) #4: Thu Jun 15 08:30:40 PDT 2006
srp@dirt.tworoads.net:/usr/src/sys/arch/i386/compile/SKOK
Architecture: i386
Machine: i386
>Description:
I use a webcam to monitor a remote location. Recently I added a second
camera and second WinTV (bktr driver) card, but when I did one of the cards
started acting as though it was not getting a full frame capture, when
running in continuous capture mode (seemed to work OK when single capture
mode was used).
After checking the software and other possible souces of error, I
discovered that the manufacturer had in the past recommended reducing
the PCI latency under similar circumstances
(http://www.hauppauge.com/html/sw_wcst.htm)
...so I tried this first as a hack, it seemed to work, then rewrote it as a
bktr driver kernel option. A latency value of 0x10 worked in my case.
>How-To-Repeat:
Find an old 180 MHz Pentium pro, install two bktr cards, start capturing in
continuous mode (a program called camserv was used).
NetBSD 3.0_STABLE (SKOK) #4: Thu Jun 15 08:30:40 PDT 2006
srp@dirt.tworoads.net:/usr/src/sys/arch/i386/compile/SKOK
total memory = 127 MB
avail memory = 120 MB
BIOS32 rev. 0 found at 0xffe90
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Pentium Pro (686-class), 179.64 MHz, id 0x619
cpu0: features fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features fbff<PGE,MCA,CMOV>
cpu0: I-cache 8 KB 32B/line 4-way, D-cache 8 KB 32B/line 2-way
cpu0: L2 cache 256 KB 32B/line 4-way
cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu0: 16 page colors
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82441FX (PMC) PCI and Memory Controller (rev. 0x02)
pcib0 at pci0 dev 13 function 0
pcib0: Intel 82371SB (PIIX3) PCI-ISA Bridge (rev. 0x01)
piixide0 at pci0 dev 13 function 1
piixide0: Intel 82371SB IDE Interface (PIIX3) (rev. 0x00)
piixide0: bus-master DMA support present
piixide0: primary channel wired to compatibility mode
piixide0: primary channel interrupting at irq 14
atabus0 at piixide0 channel 0
piixide0: secondary channel wired to compatibility mode
piixide0: secondary channel interrupting at irq 15
atabus1 at piixide0 channel 1
uhci0 at pci0 dev 13 function 2: Intel 82371SB (PIIX3) USB Host Controller (rev. 0x01)
uhci0: interrupting at irq 11
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
ppb0 at pci0 dev 14 function 0: Digital Equipment DC21052 PCI-PCI Bridge (rev. 0x01)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled, rd/line, wr/inv ok
ex0 at pci1 dev 8 function 0: 3Com 3c905-TX 10/100 Ethernet (rev. 0x0)
ex0: interrupting at irq 11
ex0: MAC address 00:c0:4f:b6:af:9e
exphy0 at ex0 phy 24: 3Com internal media interface
exphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
bktr0 at pci1 dev 9 function 0
bktr0: interrupting at irq 11
bktr0: Hauppauge Model 38101 B410
bktr0: Hauppauge WinCast/TV, Philips NTSC tuner.
Brooktree Bt878 Video Capture (Audio Section) (miscellaneous multimedia, revision 0x11) at pci1 dev 9 function 1 not configured
vga1 at pci0 dev 16 function 0: S3 Trio32/64 (rev. 0x54)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
bktr1 at pci0 dev 17 function 0
bktr1: interrupting at irq 10
bktr1: Hauppauge Model 44801 C110
bktr1: Hauppauge WinCast/TV, Philips NTSC tuner.
Brooktree Bt878 Video Capture (Audio Section) (miscellaneous multimedia, revision 0x11) at pci0 dev 17 function 1 not configured
isa0 at pcib0
lpt0 at isa0 port 0x378-0x37b irq 7
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
com2 at isa0 port 0x3e8-0x3ef irq 5: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
isapnp0: no ISA Plug 'n Play devices found
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
ulpt0 at uhub0 port 1 configuration 1 interface 0
ulpt0: HewLett Packard HP LaserJet 1200, rev 1.10/1.00, addr 2, iclass 7/1
ulpt0: using bi-directional mode
ugen0 at uhub0 port 2
ugen0: American Power Conversion Back-UPS NS 1050 FW:7.g3 .D USB FW:g3, rev 1.10/1.06, addr 3
wd0 at atabus0 drive 0: <WDC AC22100H>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 2014 MB, 4092 cyl, 16 head, 63 sec, 512 bytes/sect x 4124736 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2
wd0(piixide0:0:0): using PIO mode 4, DMA mode 2 (using DMA)
atapibus0 at atabus1: 2 targets
cd0 at atapibus0 drive 0: <NEC CD-ROM DRIVE:282, , 3.07> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 3, DMA mode 1
cd0(piixide0:1:0): using PIO mode 0, DMA mode 1 (using DMA)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
>Fix:
The following patch adds BKTR_OVERRIDE_LATENCY as a kernel option
for the bktr driver.
--- sys/dev/pci/files.pci.orig 2006-06-15 08:07:56.000000000 -0700
+++ sys/dev/pci/files.pci 2006-06-15 08:08:57.000000000 -0700
@@ -10,7 +10,7 @@
defflag opt_bktr.h BKTR_430_FX_MODE BKTR_GPIO_ACCESS BKTR_NO_MSP_RESET
BKTR_REVERSE_MUTE BKTR_SIS_VIA_MODE BKTR_USE_PLL
defparam opt_bktr.h BKTR_OVERRIDE_CARD BKTR_OVERRIDE_TUNER BKTR_OVERRIDE_DBX
- BKTR_OVERRIDE_MSP BKTR_SYSTEM_DEFAULT
+ BKTR_OVERRIDE_MSP BKTR_OVERRIDE_LATENCY BKTR_SYSTEM_DEFAULT
defflag opt_pciide.h PCIIDE_CMD064x_DISABLE PCIIDE_AMD756_ENABLEDMA
PCIIDE_CMD0646U_ENABLEUDMA PCIIDE_I31244_DISABLEDMA
--- sys/dev/pci/bktr/bktr_os.c.orig 2006-06-15 10:38:53.000000000 -0700
+++ sys/dev/pci/bktr/bktr_os.c 2006-06-15 08:29:41.000000000 -0700
@@ -1520,18 +1520,33 @@
#ifndef BROOKTREE_DEF_LATENCY_VALUE
#define BROOKTREE_DEF_LATENCY_VALUE 0x10
#endif
+
+ latency = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_LATENCY_TIMER);
+ latency = (latency >> 8) & 0xff;
+
+#if defined(BKTR_OVERRIDE_LATENCY)
+
+ printf("%s: overriding PCI bus latency was %d changing to %d\n",
+ bktr_name(bktr), (int) latency, BKTR_OVERRIDE_LATENCY);
+ latency = BKTR_OVERRIDE_LATENCY;
+ pci_conf_write(pa->pa_pc, pa->pa_tag,
+ PCI_LATENCY_TIMER, latency<<8);
+
+#else
+
latency = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_LATENCY_TIMER);
latency = (latency >> 8) & 0xff;
if (!latency) {
if (bootverbose) {
- printf("%s: PCI bus latency was 0 changing to %d",
+ printf("%s: PCI bus latency was 0 changing to %d\n",
bktr_name(bktr), BROOKTREE_DEF_LATENCY_VALUE);
}
latency = BROOKTREE_DEF_LATENCY_VALUE;
pci_conf_write(pa->pa_pc, pa->pa_tag,
PCI_LATENCY_TIMER, latency<<8);
}
+#endif
common_bktr_attach(bktr, unit, pa->pa_id, PCI_REVISION(pa->pa_class));
===
The resulting dmesg changes when using
options BKTR_OVERRIDE_LATENCY 0x10
dmesg:
bktr0 at pci1 dev 9 function 0
bktr0: interrupting at irq 11
bktr0: overriding PCI bus latency was 32 changing to 16
bktr0: Hauppauge Model 38101 B410
bktr0: Hauppauge WinCast/TV, Philips NTSC tuner.
Brooktree Bt878 Video Capture (Audio Section) (miscellaneous multimedia, revision 0x11) at pci1 dev 9 function 1 not configured
bktr1 at pci0 dev 17 function 0
bktr1: interrupting at irq 10
bktr1: overriding PCI bus latency was 32 changing to 16
bktr1: Hauppauge Model 44801 C110
bktr1: Hauppauge WinCast/TV, Philips NTSC tuner.
Brooktree Bt878 Video Capture (Audio Section) (miscellaneous multimedia, revision 0x11) at pci0 dev 17 function 1 not configured
>Audit-Trail:
From: christos@zoulas.com (Christos Zoulas)
To: gnats-bugs@NetBSD.org, kern-bug-people@netbsd.org,
gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
Cc:
Subject: Re: kern/33742: Multiple bktr cards and changing PCI latency.
Date: Thu, 15 Jun 2006 15:36:52 -0400
On Jun 15, 7:25pm, srp@tworoads.net (srp@tworoads.net) wrote:
-- Subject: kern/33742: Multiple bktr cards and changing PCI latency.
| >Number: 33742
| >Category: kern
| >Synopsis: multiple bktr cards may require change in PCI latency.
| >Confidential: no
| >Severity: non-critical
| >Priority: low
| >Responsible: kern-bug-people
| >State: open
| >Class: change-request
| >Submitter-Id: net
| >Arrival-Date: Thu Jun 15 19:25:00 +0000 2006
| >Originator: Scott Presnell
| >Release: NetBSD 3.0_STABLE
| >Organization:
| Self
| >Environment:
|
| NetBSD 3.0_STABLE (SKOK) #4: Thu Jun 15 08:30:40 PDT 2006
| srp@dirt.tworoads.net:/usr/src/sys/arch/i386/compile/SKOK
|
| Architecture: i386
| Machine: i386
|
| >Description:
|
| I use a webcam to monitor a remote location. Recently I added a second
| camera and second WinTV (bktr driver) card, but when I did one of the cards
| started acting as though it was not getting a full frame capture, when
| running in continuous capture mode (seemed to work OK when single capture
| mode was used).
|
| After checking the software and other possible souces of error, I
| discovered that the manufacturer had in the past recommended reducing
| the PCI latency under similar circumstances
|
| (http://www.hauppauge.com/html/sw_wcst.htm)
|
| ...so I tried this first as a hack, it seemed to work, then rewrote it as a
| bktr driver kernel option. A latency value of 0x10 worked in my case.
|
| >How-To-Repeat:
|
| Find an old 180 MHz Pentium pro, install two bktr cards, start capturing in
| continuous mode (a program called camserv was used).
|
| NetBSD 3.0_STABLE (SKOK) #4: Thu Jun 15 08:30:40 PDT 2006
| srp@dirt.tworoads.net:/usr/src/sys/arch/i386/compile/SKOK
| total memory = 127 MB
| avail memory = 120 MB
| BIOS32 rev. 0 found at 0xffe90
| mainbus0 (root)
| cpu0 at mainbus0: (uniprocessor)
| cpu0: Intel Pentium Pro (686-class), 179.64 MHz, id 0x619
| cpu0: features fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
| cpu0: features fbff<PGE,MCA,CMOV>
| cpu0: I-cache 8 KB 32B/line 4-way, D-cache 8 KB 32B/line 2-way
| cpu0: L2 cache 256 KB 32B/line 4-way
| cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
| cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
| cpu0: 16 page colors
| pci0 at mainbus0 bus 0: configuration mode 1
| pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
| pchb0 at pci0 dev 0 function 0
| pchb0: Intel 82441FX (PMC) PCI and Memory Controller (rev. 0x02)
| pcib0 at pci0 dev 13 function 0
| pcib0: Intel 82371SB (PIIX3) PCI-ISA Bridge (rev. 0x01)
| piixide0 at pci0 dev 13 function 1
| piixide0: Intel 82371SB IDE Interface (PIIX3) (rev. 0x00)
| piixide0: bus-master DMA support present
| piixide0: primary channel wired to compatibility mode
| piixide0: primary channel interrupting at irq 14
| atabus0 at piixide0 channel 0
| piixide0: secondary channel wired to compatibility mode
| piixide0: secondary channel interrupting at irq 15
| atabus1 at piixide0 channel 1
| uhci0 at pci0 dev 13 function 2: Intel 82371SB (PIIX3) USB Host Controller (rev. 0x01)
| uhci0: interrupting at irq 11
| usb0 at uhci0: USB revision 1.0
| uhub0 at usb0
| uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
| uhub0: 2 ports with 2 removable, self powered
| ppb0 at pci0 dev 14 function 0: Digital Equipment DC21052 PCI-PCI Bridge (rev. 0x01)
| pci1 at ppb0 bus 1
| pci1: i/o space, memory space enabled, rd/line, wr/inv ok
| ex0 at pci1 dev 8 function 0: 3Com 3c905-TX 10/100 Ethernet (rev. 0x0)
| ex0: interrupting at irq 11
| ex0: MAC address 00:c0:4f:b6:af:9e
| exphy0 at ex0 phy 24: 3Com internal media interface
| exphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
| bktr0 at pci1 dev 9 function 0
| bktr0: interrupting at irq 11
| bktr0: Hauppauge Model 38101 B410
| bktr0: Hauppauge WinCast/TV, Philips NTSC tuner.
| Brooktree Bt878 Video Capture (Audio Section) (miscellaneous multimedia, revision 0x11) at pci1 dev 9 function 1 not configured
| vga1 at pci0 dev 16 function 0: S3 Trio32/64 (rev. 0x54)
| wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
| wsmux1: connecting to wsdisplay0
| bktr1 at pci0 dev 17 function 0
| bktr1: interrupting at irq 10
| bktr1: Hauppauge Model 44801 C110
| bktr1: Hauppauge WinCast/TV, Philips NTSC tuner.
| Brooktree Bt878 Video Capture (Audio Section) (miscellaneous multimedia, revision 0x11) at pci0 dev 17 function 1 not configured
| isa0 at pcib0
| lpt0 at isa0 port 0x378-0x37b irq 7
| com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
| com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
| com2 at isa0 port 0x3e8-0x3ef irq 5: ns16550a, working fifo
| pckbc0 at isa0 port 0x60-0x64
| pckbd0 at pckbc0 (kbd slot)
| pckbc0: using irq 1 for kbd slot
| wskbd0 at pckbd0: console keyboard, using wsdisplay0
| pcppi0 at isa0 port 0x61
| sysbeep0 at pcppi0
| isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
| npx0 at isa0 port 0xf0-0xff: using exception 16
| fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
| isapnp0: no ISA Plug 'n Play devices found
| fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
| ulpt0 at uhub0 port 1 configuration 1 interface 0
| ulpt0: HewLett Packard HP LaserJet 1200, rev 1.10/1.00, addr 2, iclass 7/1
| ulpt0: using bi-directional mode
| ugen0 at uhub0 port 2
| ugen0: American Power Conversion Back-UPS NS 1050 FW:7.g3 .D USB FW:g3, rev 1.10/1.06, addr 3
| wd0 at atabus0 drive 0: <WDC AC22100H>
| wd0: drive supports 16-sector PIO transfers, LBA addressing
| wd0: 2014 MB, 4092 cyl, 16 head, 63 sec, 512 bytes/sect x 4124736 sectors
| wd0: 32-bit data port
| wd0: drive supports PIO mode 4, DMA mode 2
| wd0(piixide0:0:0): using PIO mode 4, DMA mode 2 (using DMA)
| atapibus0 at atabus1: 2 targets
| cd0 at atapibus0 drive 0: <NEC CD-ROM DRIVE:282, , 3.07> cdrom removable
| cd0: 32-bit data port
| cd0: drive supports PIO mode 3, DMA mode 1
| cd0(piixide0:1:0): using PIO mode 0, DMA mode 1 (using DMA)
| boot device: wd0
| root on wd0a dumps on wd0b
| root file system type: ffs
| wsdisplay0: screen 1 added (80x25, vt100 emulation)
| wsdisplay0: screen 2 added (80x25, vt100 emulation)
| wsdisplay0: screen 3 added (80x25, vt100 emulation)
| wsdisplay0: screen 4 added (80x25, vt100 emulation)
|
| >Fix:
|
|
| The following patch adds BKTR_OVERRIDE_LATENCY as a kernel option
| for the bktr driver.
|
| --- sys/dev/pci/files.pci.orig 2006-06-15 08:07:56.000000000 -0700
| +++ sys/dev/pci/files.pci 2006-06-15 08:08:57.000000000 -0700
| @@ -10,7 +10,7 @@
| defflag opt_bktr.h BKTR_430_FX_MODE BKTR_GPIO_ACCESS BKTR_NO_MSP_RESET
| BKTR_REVERSE_MUTE BKTR_SIS_VIA_MODE BKTR_USE_PLL
| defparam opt_bktr.h BKTR_OVERRIDE_CARD BKTR_OVERRIDE_TUNER BKTR_OVERRIDE_DBX
| - BKTR_OVERRIDE_MSP BKTR_SYSTEM_DEFAULT
| + BKTR_OVERRIDE_MSP BKTR_OVERRIDE_LATENCY BKTR_SYSTEM_DEFAULT
|
| defflag opt_pciide.h PCIIDE_CMD064x_DISABLE PCIIDE_AMD756_ENABLEDMA
| PCIIDE_CMD0646U_ENABLEUDMA PCIIDE_I31244_DISABLEDMA
| --- sys/dev/pci/bktr/bktr_os.c.orig 2006-06-15 10:38:53.000000000 -0700
| +++ sys/dev/pci/bktr/bktr_os.c 2006-06-15 08:29:41.000000000 -0700
| @@ -1520,18 +1520,33 @@
| #ifndef BROOKTREE_DEF_LATENCY_VALUE
| #define BROOKTREE_DEF_LATENCY_VALUE 0x10
| #endif
| +
| + latency = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_LATENCY_TIMER);
| + latency = (latency >> 8) & 0xff;
| +
| +#if defined(BKTR_OVERRIDE_LATENCY)
| +
| + printf("%s: overriding PCI bus latency was %d changing to %d\n",
| + bktr_name(bktr), (int) latency, BKTR_OVERRIDE_LATENCY);
| + latency = BKTR_OVERRIDE_LATENCY;
| + pci_conf_write(pa->pa_pc, pa->pa_tag,
| + PCI_LATENCY_TIMER, latency<<8);
| +
| +#else
| +
| latency = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_LATENCY_TIMER);
| latency = (latency >> 8) & 0xff;
|
| if (!latency) {
| if (bootverbose) {
| - printf("%s: PCI bus latency was 0 changing to %d",
| + printf("%s: PCI bus latency was 0 changing to %d\n",
| bktr_name(bktr), BROOKTREE_DEF_LATENCY_VALUE);
| }
| latency = BROOKTREE_DEF_LATENCY_VALUE;
| pci_conf_write(pa->pa_pc, pa->pa_tag,
| PCI_LATENCY_TIMER, latency<<8);
| }
| +#endif
|
| common_bktr_attach(bktr, unit, pa->pa_id, PCI_REVISION(pa->pa_class));
|
| ===
|
| The resulting dmesg changes when using
|
| options BKTR_OVERRIDE_LATENCY 0x10
|
What are the valid values of latency? Shouldn't the driver check for those?
christos
From: Scott Presnell <srp@tworoads.net>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: kern/33742: Multiple bktr cards and changing PCI latency.
Date: Thu, 15 Jun 2006 12:52:33 -0700
Christos Zoulas wrote:
> The following reply was made to PR kern/33742; it has been noted by GNATS.
>
> From: christos@zoulas.com (Christos Zoulas)
> To: gnats-bugs@NetBSD.org, kern-bug-people@netbsd.org,
> gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
> Cc:
> Subject: Re: kern/33742: Multiple bktr cards and changing PCI latency.
> Date: Thu, 15 Jun 2006 15:36:52 -0400
>
> On Jun 15, 7:25pm, srp@tworoads.net (srp@tworoads.net) wrote:
> -- Subject: kern/33742: Multiple bktr cards and changing PCI latency.
>
>
> What are the valid values of latency? Shouldn't the driver check for those?
>
> christos
>
(I am at the edge of my understanding).
To the best of my knowledge the driver does not check except for the
case of !latency.
pcictl shows the following for a similar card but in a very different
machine. (can't get to the machine in question at this time)
PCI configuration registers:
Common header:
0x00: 0x036e109e 0x02800106 0x04000002 0x00804000
Vendor Name: Brooktree (0x109e)
Device Name: Bt878 Video Capture (0x036e)
Command register: 0x0106
I/O space accesses: off
Memory space accesses: on
Bus mastering: on
Special cycles: off
MWI transactions: off
Palette snooping: off
Parity error checking: off
Address/data stepping: off
System error (SERR): on
Fast back-to-back transactions: off
Status register: 0x0280
Capability List support: off
66 MHz capable: off
User Definable Features (UDF) support: off
Fast back-to-back capable: on
Data parity error detected: off
DEVSEL timing: medium (0x1)
Slave signaled Target Abort: off
Master received Target Abort: off
Master received Master Abort: off
Asserted System Error (SERR): off
Parity error detected: off
Class Name: multimedia (0x04)
Subclass Name: video (0x00)
Interface: 0x00
Revision ID: 0x02
BIST: 0x00
Header Type: 0x00+multifunction (0x80)
Latency Timer: 0x40
Cache Line Size: 0x00
Type 0 ("normal" device) header:
0x10: 0xf2001008 0x00000000 0x00000000 0x00000000
0x20: 0x00000000 0x00000000 0x00000000 0x13eb0070
0x30: 0x00000000 0x00000000 0x00000000 0x2810010a
Base address register at 0x10
type: 32-bit prefetchable memory
base: 0xf2001000, not sized
Base address register at 0x14
not implemented(?)
Base address register at 0x18
not implemented(?)
Base address register at 0x1c
not implemented(?)
Base address register at 0x20
not implemented(?)
Base address register at 0x24
not implemented(?)
Cardbus CIS Pointer: 0x00000000
Subsystem vendor ID: 0x0070
Subsystem ID: 0x13eb
Expansion ROM Base Address: 0x00000000
Reserved @ 0x34: 0x00000000
Reserved @ 0x38: 0x00000000
Maximum Latency: 0x28
Minimum Grant: 0x10
Interrupt pin: 0x01 (pin A)
Interrupt line: 0x0a
Device-dependent header:
0x40: 0x00000000 0x00000000 0x00000000 0x00000000
0x50: 0x00000000 0x00000000 0x00000000 0x00000000
0x60: 0x00000000 0x00000000 0x00000000 0x00000000
0x70: 0x00000000 0x00000000 0x00000000 0x00000000
0x80: 0x00000000 0x00000000 0x00000000 0x00000000
0x90: 0x00000000 0x00000000 0x00000000 0x00000000
0xa0: 0x00000000 0x00000000 0x00000000 0x00000000
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
0xc0: 0x00000000 0x00000000 0x00000000 0x00000000
0xd0: 0x00000000 0x00000000 0x00000000 0x00000000
0xe0: 0x00000000 0x00000000 0x00000000 0x00000000
0xf0: 0x00000000 0x00000000 0x00000000 0x00000000
From: Scott Presnell <srp@tworoads.net>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: kern/33742: Multiple bktr cards and changing PCI latency.
Date: Mon, 26 Jun 2006 10:13:59 -0700
This bug-report/change-request can be closed. I found that a better
solution was to get a more recent bktr based card (problem card was
very, very early model). Two more recent cards can be used together
without chaning the latency.
Thanks.
- Scott
Christos Zoulas wrote:
> The following reply was made to PR kern/33742; it has been noted by GNATS.
>
> From: christos@zoulas.com (Christos Zoulas)
> To: gnats-bugs@NetBSD.org, kern-bug-people@netbsd.org,
> gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
> Cc:
> Subject: Re: kern/33742: Multiple bktr cards and changing PCI latency.
> Date: Thu, 15 Jun 2006 15:36:52 -0400
>
> On Jun 15, 7:25pm, srp@tworoads.net (srp@tworoads.net) wrote:
> -- Subject: kern/33742: Multiple bktr cards and changing PCI latency.
>
> | >Number: 33742
> | >Category: kern
> | >Synopsis: multiple bktr cards may require change in PCI latency.
> | >Confidential: no
> | >Severity: non-critical
> | >Priority: low
> | >Responsible: kern-bug-people
> | >State: open
> | >Class: change-request
> | >Submitter-Id: net
> | >Arrival-Date: Thu Jun 15 19:25:00 +0000 2006
> | >Originator: Scott Presnell
> | >Release: NetBSD 3.0_STABLE
> | >Organization:
> | Self
> | >Environment:
> |
> | NetBSD 3.0_STABLE (SKOK) #4: Thu Jun 15 08:30:40 PDT 2006
> | srp@dirt.tworoads.net:/usr/src/sys/arch/i386/compile/SKOK
> |
> | Architecture: i386
> | Machine: i386
> |
> | >Description:
> |
> | I use a webcam to monitor a remote location. Recently I added a second
> | camera and second WinTV (bktr driver) card, but when I did one of the cards
> | started acting as though it was not getting a full frame capture, when
> | running in continuous capture mode (seemed to work OK when single capture
> | mode was used).
> |
> | After checking the software and other possible souces of error, I
> | discovered that the manufacturer had in the past recommended reducing
> | the PCI latency under similar circumstances
> |
> | (http://www.hauppauge.com/html/sw_wcst.htm)
> |
> | ...so I tried this first as a hack, it seemed to work, then rewrote it as a
> | bktr driver kernel option. A latency value of 0x10 worked in my case.
> |
> What are the valid values of latency? Shouldn't the driver check for those?
>
> christos
>
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.