From owner-freebsd-multimedia Sun Apr 25 20:41:35 1999 Delivered-To: freebsd-multimedia@freebsd.org Received: from cimlogic.com.au (cimlog.lnk.telstra.net [139.130.51.31]) by hub.freebsd.org (Postfix) with ESMTP id B1BC214F32; Sun, 25 Apr 1999 20:41:29 -0700 (PDT) (envelope-from jb@cimlogic.com.au) Received: (from jb@localhost) by cimlogic.com.au (8.9.1/8.9.1) id NAA20510; Mon, 26 Apr 1999 13:47:04 +1000 (EST) (envelope-from jb) From: John Birrell Message-Id: <199904260347.NAA20510@cimlogic.com.au> Subject: Re: brooktree driver problems?? In-Reply-To: <19990425185312.25505@hydrogen.nike.efn.org> from John-Mark Gurney at "Apr 25, 1999 6:53:12 pm" To: gurney_j@resnet.uoregon.edu Date: Mon, 26 Apr 1999 13:47:03 +1000 (EST) Cc: multimedia@FreeBSD.ORG, hasty@rah.star-gate.com, fsmp@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL43 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-multimedia@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org John-Mark Gurney wrote: > the first problem I came across was the driver sending my program around > 280-380 signals per sec... this is definately NOT 30fps... I set the > geometry using the METEORSETGEO ioctl to width 160, height 120, frame 1, > and fmt METEOR_GEO_YUV_12... and similar things happen when I set the > geo to 320x240... as I read the driver, this shouldn't happen, but it > is... The extra signals are the result of the card reporting errors that are silently handled by the driver. Setting the geometry from user-space is not handled properly by the driver. The number of rows/columns must be a function of the hactive/hinactive/vactive/vinactive hardware setting that the driver makes, and the RISC program must be built to WRITE or SKIP _exactly_ that many rows/columns, otherwise the hardware complains. You can see this with fxtv in small size, by adding the following code to the driver: printf( " STATUS dstatus %x istatus %lx risc_count %x \n", dstatus, bktr_status, bt848->risc_count ); if ((bktr_status & BT848_INT_FBUS) != 0) printf( " ---> BT848_INT_FBUS in %s data\n", (bktr_status & BT848_INT_FIELD) ? "even":"odd"); if ((bktr_status & BT848_INT_FTRGT) != 0) printf( " ---> BT848_INT_FTRGT in %s data\n", (bktr_status & BT848_INT_FIELD) ? "even":"odd"); if ((bktr_status & BT848_INT_FDSR) != 0) printf( " ---> BT848_INT_FDSR in %s data\n", (bktr_status & BT848_INT_FIELD) ? "even":"odd"); if ((bktr_status & BT848_INT_PPERR) != 0) printf( " ---> BT848_INT_PPERR in %s data\n", (bktr_status & BT848_INT_FIELD) ? "even":"odd"); if ((bktr_status & BT848_INT_RIPERR) != 0) printf( " ---> BT848_INT_RIPERR in %s data\n", (bktr_status & BT848_INT_FIELD) ? "even":"odd"); if ((bktr_status & BT848_INT_PABORT) != 0) printf( " ---> BT848_INT_PABORT in %s data\n", (bktr_status & BT848_INT_FIELD) ? "even":"odd"); if ((bktr_status & BT848_INT_OCERR) != 0) printf( " ---> BT848_INT_OCERR in %s data\n", (bktr_status & BT848_INT_FIELD) ? "even":"odd"); if ((bktr_status & BT848_INT_SCERR) != 0) printf( " ---> BT848_INT_SCERR in %s data\n", (bktr_status & BT848_INT_FIELD) ? "even":"odd"); after (about) line 1481 where all these errors are tested. On my system, fxtv in small mode causes continual SCERR errors which the data sheet refers to as a "severe error". I don't think that the driver should allow a user-space application to specify parameters that the driver and hardware don't like. -- John Birrell - jb@cimlogic.com.au; jb@freebsd.org http://www.cimlogic.com.au/ CIMlogic Pty Ltd, GPO Box 117A, Melbourne Vic 3001, Australia +61 418 353 137 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message