Date: Mon, 26 Apr 1999 13:47:03 +1000 (EST) From: John Birrell <jb@cimlogic.com.au> To: gurney_j@resnet.uoregon.edu Cc: multimedia@FreeBSD.ORG, hasty@rah.star-gate.com, fsmp@FreeBSD.ORG Subject: Re: brooktree driver problems?? Message-ID: <199904260347.NAA20510@cimlogic.com.au> In-Reply-To: <19990425185312.25505@hydrogen.nike.efn.org> from John-Mark Gurney at "Apr 25, 1999 6:53:12 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904260347.NAA20510>