> Subject: Re: system hang in bttv driver > on modprobe. > > After reading a bit about PCI quirks, I also > added a test in bttv-driver.c > > " if (isa_dma_bridge_buggy) > printk( "bttv: Host bridge has > buggy ISA DMA\n"); > > " similar to the ones for the VSFX and triton > tests there... Well, you need the VSFX bit .. that is the VIA PCI compatibility mode .. whatever that means :-) > > now I have (transcribed): Actually a fuller syslog message would be better .. what version of bttv are you using ? why does it say interface = v1.00 even though you have specified v4l2=2 in the modules.conf ? how much main memory do you have and also could you run lspci -vv and paste the relevant lines (the sections that say multimedia something or the other) > grumpy# modprobe bttv > <date> Linux video capture interface: v1.00 > bttv: host bridge is VIA Technologies Inc. > VT82C693A/694x [Apollo 133x] > bttv: host bridge is VIA Technologies Inc. > VT82C596 Power Management > bttv: host bridge has buggy ISA DMA > bttv: host bridge needs VSFX enabled > PCI: Enabling device - 00:09.0 (0004->0006) > bttv0: detected: ATI TV Wonder [card=63, > autodetected] > bttv0: enabling VSFX > bttv0: risc main @ 12112000 So at this point you have programmed the DMA push engine in bttv-risc.c .. with the buffer locations ... > about to btwrite(val, BT848_E_SCLOOP) And then you should be in init_bt484, where you should see code that looks like this .. (in version 0.8.45 of bttv) ----------x--------------- static void init_bt848(struct bttv *btv) { int val; btwrite(0, BT848_SRESET); btwrite(0x00, BT848_CAP_CTL); btwrite(BT848_COLOR_CTL_GAMMA, BT848_COLOR_CTL); btwrite(BT848_IFORM_XTAUTO | BT848_IFORM_AUTO, BT848_IFORM); /* set planar and packed mode trigger points and */ /* set rising edge of inverted GPINTR pin as irq trigger */ btwrite(BT848_GPIO_DMA_CTL_PKTP_32| BT848_GPIO_DMA_CTL_PLTP1_16| BT848_GPIO_DMA_CTL_PLTP23_16| BT848_GPIO_DMA_CTL_GPINTC| BT848_GPIO_DMA_CTL_GPINTI, BT848_GPIO_DMA_CTL); val = btv->opt_chroma_agc ? BT848_SCLOOP_CAGC : 0; btwrite(val, BT848_E_SCLOOP); btwrite(val, BT848_O_SCLOOP); -------------x------------------- The GPIO_DMA instructions before the LOOP control is what sets up and ARMS the DMA .. and that is what I was suggesting you comment out .. you will see no picture .. but it should stay up :-) > ---------- <HANG> > ---------------------------------- My simplest and maybe naive suspicion is that DMA is not setup right and is hanging the machine .. so the parts of setting up and arming the DMA's would be where to start examining. > P.S. If someone can tell me how to get Redhat > to print kernel info and debug > messages, it would be really helpful! under normal circumstances, if you have klogd and syslogd running, your KERN_INFO and KERN_DEBUG messages should go into /var/log/messages .. it could be that your reporting level is too low .. take a look at man klogd .. and only KERN_ERROR or something critical like that are the only things getting reported. PS: it maybe a good idea to switch to a private thread .. __________________________________________________ Do you Yahoo!? New DSL Internet Access from SBC & Yahoo! http://sbc.yahoo.com