From owner-freebsd-firewire@FreeBSD.ORG Tue Oct 30 17:18:22 2007 Return-Path: Delivered-To: freebsd-firewire@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 41D8816A418; Tue, 30 Oct 2007 17:18:22 +0000 (UTC) (envelope-from freebsd@sopwith.solgatos.com) Received: from schitzo.solgatos.com (pool-71-182-89-93.ptldor.fios.verizon.net [71.182.89.93]) by mx1.freebsd.org (Postfix) with ESMTP id 2181E13C48A; Tue, 30 Oct 2007 17:18:22 +0000 (UTC) (envelope-from freebsd@sopwith.solgatos.com) Received: from schitzo.solgatos.com (localhost.home.localnet [127.0.0.1]) by schitzo.solgatos.com (8.14.1/8.13.8) with ESMTP id l9UGYgUe021971; Tue, 30 Oct 2007 09:34:43 -0700 Received: from sopwith.solgatos.com (uucp@localhost) by schitzo.solgatos.com (8.14.1/8.13.4/Submit) with UUCP id l9UGYgpm021968; Tue, 30 Oct 2007 09:34:42 -0700 Received: from localhost by sopwith.solgatos.com (8.8.8/6.24) id PAA11721; Tue, 30 Oct 2007 15:59:34 GMT Message-Id: <200710301559.PAA11721@sopwith.solgatos.com> To: simokawa@FreeBSD.org In-reply-to: Your message of "Tue, 30 Oct 2007 01:19:54 GMT." <200710300119.l9U1Jsv8040070@freefall.freebsd.org> Date: Tue, 30 Oct 2007 08:59:34 +0100 From: Dieter Cc: freebsd-firewire@FreeBSD.org Subject: Re: kern/113785: [firewire] dropouts when playing DV on firewire X-BeenThere: freebsd-firewire@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Firewire support in FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Oct 2007 17:18:22 -0000 In message <200710300119.l9U1Jsv8040070@freefall.freebsd.org>, simokawa@FreeBSD.org writes: > Synopsis: [firewire] dropouts when playing DV on firewire > > State-Changed-From-To: open->feedback > State-Changed-By: simokawa > State-Changed-When: Tue Oct 30 01:17:44 UTC 2007 > State-Changed-Why: > I increased tx/rx buffer size in rev. 1.7 and 1.5.12.2 of > src/usr.sbin/fwcontrol/fwdv.c. I hope this fixes your problem. > > http://www.freebsd.org/cgi/query-pr.cgi?pr=113785 -#define NCHUNK 8 +#define NCHUNK 64 I tried this, it didn't help. I also tried cranking it up to 256, which still didn't help. :-( Given that the NEC controller has the problem only when "hot powered-up", I wonder if it is an initialization problem. Is there a way to log what FreeBSD sends to the camcorder, similar to tcpdump(1) ? Comparing what FreeBSD sends if it detects the camcorder at boot time with what it sends when the camcorder is powered up later might allow fixing the having-to-reboot problem. Perhaps the VIA controller always sends the bad initialization? The compiler whined: fwcontrol.c:611: warning: control reaches end of non-void function fwdv.c:93: warning: no previous prototype for 'dvrecv' fwdv.c:248: warning: no previous prototype for 'dvsend' At least the compiler warnings are easily fixed: diff -u -r1.1 fwcontrol.c --- fwcontrol.c 2007/10/30 15:32:15 1.1 +++ fwcontrol.c 2007/10/30 15:33:10 @@ -58,7 +58,7 @@ extern int dvrecv(int, char *, char, int); extern int dvsend(int, char *, char, int); -int sysctl_set_int(const char *, int); +void sysctl_set_int(const char *, int); static void usage(void) @@ -603,7 +603,7 @@ } } -int +void sysctl_set_int(const char *name, int val) { if (sysctlbyname(name, NULL, NULL, &val, sizeof(int)) < 0) diff -u -r1.1 fwdv.c --- fwdv.c 2007/10/30 02:50:42 1.1 +++ fwdv.c 2007/10/30 15:45:42 @@ -88,6 +88,10 @@ #define MAXBLOCKS (300) #define CYCLE_FRAC 0xc00 +/* prototypes */ +int dvrecv(int, char *, char, int); +int dvsend(int, char *, char, int); + int dvrecv(int d, char *filename, char ich, int count) {